Re: Hallo Rolf - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Kai (68 Beiträge) am Donnerstag, 22.April.2004, 23:38.
    Re: Hallo Rolf

      Bin mir keines Fehlers bewusst????:-(

      Hier der Code vom Upload-Script

      <!-- [BEGIN Custom1] -->
       
      <!-- [END Custom1] -->
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <!-- [BEGIN Custom2] -->
       
      <!-- [END Custom2] -->
      <HEAD>
      <!-- [BEGIN Custom3] -->
       
      <!-- [END Custom3] -->
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
      <META NAME="Generator" CONTENT="NetObjects Fusion 5.0.1 für Windows">
      <TITLE>
      
      Home
      </TITLE>
      <!-- [BEGIN Layoutscript] -->
       
      <!-- [END Layoutscript] -->
      <!-- [BEGIN Masterscript] -->
       
      <!-- [END Masterscript] -->
      <!-- [BEGIN Custom4] -->
       
      <!-- [END Custom4] -->
      </HEAD>
      <!-- [BEGIN Custom5] -->
       
      <!-- [END Custom5] -->
      <BODY BGCOLOR="#FFFFFF" TEXT="#000000" 
      <perl>
      sub upfile {
      # ---- Variabeln müssen angepasst werden ----------- #
      

      # Datenbank zum Bild zwischenspeichern
      $dbbild="/wart4you.de/aufspielen/bild";
      

      # Variable zum durchschleifen der Daten für die Orginal Datenbank
      # Diese 4 Variablen müssen vor dem Aufruf der Sub gefüllt werden.
      # $dborginal Orginal Datenbank in der das File gespeichert werden soll
      # $dbid Id des Datensatzes der orginal Datenbank zum entgültigen speichern des Bildes via mod
      # $dbdf Name des Dateifeldes der Orginal Datenbank
      # $dbnf Name des Feldes für den umgewandelten Datei Namen der Orginal Datenbank 
      $up_schleife="&dborginal=$dborginal&dbid=$dbid&dbdf=$dbdf&dbnf=$dbnf";
      

      # Zulassen von Dateitypen. Bei diesen drei wird die Breite und Höhe ermittelt.
      # Es können weitere hinzugefügt werden, bei denen wird dann aber nicht die B/H ermittelt.
      $erlaubte_dateitypen = "gif|jpg|png|GIF|JPG|PNG"; 
        
      # Maximale Größe in Byts die das Hochgeladene Bild haben darf.
      $filemax="100000"; # entspricht 100 Kb
      

      # Maximale Breite für das Vorschaubild, die Höhe des Bildes wird dann berechnet.
      $vormax="500"; # entspricht 500 pixel
      

      # Link zu dem File Verzeichniss
      $f_link="http://www.wart4you.de/files";
      

      # ---- ende ----------- #

      $maxg=$filemax/1000; # Umrechnen der Byts in Kb
      

      out "<div align=center>";
      out "<table bgcolor='#000000' width='550' cellspacing='1' cellpadding='4' border='0'>";
      out "<tr bgcolor='#e0e0e0'><td colspan=2 align='center'>";
      out "<font face='Verdana, Arial' size='3' color='#000099'><b>FOTO UPLOAD</b></font>";
      out "</td></tr>";
      

      # Aufruf des Formulars wenn neues Foto oder anderes Foto gewünscht

      if ($up_cmd eq "")
      {
      

      # Wenn ein anderes Bild gewünscht wird erst das alte Bild löschen

      if ($_put{up_Id} ne "") 
      {
      mod "Id==$_put{up_Id}",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$_put{up_Id}",$dbbild;
      }
      

      # dann das Formular zu upload ausgeben.

      &formularfile();
      }
      # ---- Ende neues / anders Bild -------------- #
      

      # ---- Wenn ein Bild gewählt und überprüft wurde zum Orginal Datensatz hinzufügen.
       
      if ($up_cmd eq putbild)
      {
      get "Id==!$_put{up_Id}",$dbbild;
      mod "Id==!$dbid",["$dbdf","$bild","_filec_bild","2","$dbnf","$bild_name"],"$dborginal";
      del "Id==$_put{up_Id}",$dbbild;
      

      # ---- Meldung ausgeben. Wer möchte kann hier auch noch ne Mail verschicken ---- #

      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<b>Ihr Foto wurde gespeichert und ist nun verfügbar.<br>Vielen Dank!</b>";
      out "</td></tr>";
      }
      

      # ---- Ende Eintrag Orginal Datenbank ---- #

      # ---- Wenn das Formular abgschickt wurde Datei speichen/überprüfen und Meldung ausgeben.
      

      if ($up_cmd eq vorschau)
      {
      $bild1=$_put{up_bild};
      

      # Überprüfen und Umwandeln von Sonderzeichen

      $bild1 =~ s/(\W)/sprintf("%%%02X",ord($1))/ge;
      $bild1 =~ s/%2E/./g;
      

      # Zwichenspeichern der Datei

      put ["bild", $_put{up_bild}, "bild_name", $bild1],"$dbbild";
      get "bild_name==!$bild1",$dbbild;
      

      # Überprüfen ob es eine zugelassene Dateiendung ist, wenn nicht Datei und Eintrag in db löschen.

      if($bild !~ /.($erlaubte_dateitypen)/)
      {
      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<font color='#cc0000'>Sie haben eine ungültige Datei ausgewählt.</br>";
      out "Bitte wählen Sie ein Foto im Format $erlaubte_dateitypen aus.</font>";
      out "</tr></td>";
      mod "Id==$Id",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$Id","$dbbild";
      &formularfile();
      } else {
      

      # Wenn Dateiendung richtig, dann Datei hohlen und größe in Kb errechnen

      $x=get "$f_link/$bild_name";
      $dateig=length($x)/1000;
      $dateigaus=sprintf('%.2f',$dateig); # auf 2 nachkommastellen
      

      # Wenn die Datei die max. Dateigröße überschreitet, Datei und Eintrag in db löschen.

      if (length($x) > $filemax)
      {
      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<font color='#cc0000'>Das von ihnen gewählte Foto hatt $dateigaus Kb und ist somit zu groß.</br>";
      out "Es können nur Fotos gespeichert werden die max. $maxg Kb nicht überschreiten.</font>";
      mod "Id==$Id",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$Id",$dbbild;
      out "</td></tr>";
      &formularfile();
      } else {
      

      # Wenn Dateigröße und Endung Ok, dann Bild als Vorschau mit breite, höhe und Größe in Kb ausgeben

      $name1="$bild_name";
      @name = split(/\./,$name1);
      if ($name[1] eq "gif" or $name[1] eq "GIF")
      {
      my($w,$h)=&gifsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } elsif ($name[1] eq "jpg" or $name[1] eq "JPG") {
      my($w,$h)=&jpegsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } elsif ($name[1] eq "png" or $name[1] eq "PNG") {
      my($w,$h)=&pngsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } else {
      out "";
      }
      if ($w_out > $vormax) {
      $h_out=$h_out/$w_out*$vormax;
      $w_out=$vormax;
      }
      

      out "<tr bgcolor='#f4f4f4'><td align='left' colspan=2>";
      out "Foto Name: <b>$bild</b>";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='center' colspan=2>";
      out "<img src='$f_link/$bild_name' width=$w_out height=$h_out alt='Vorschaubild $bild Breite $w_out Höhe $h_out'>";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>";
      out "<b>Fotoeigenschaften:</b>";
      out "$wout";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>";
      out "Dateigrösse: <b>$dateigaus Kb</b>";
      out "</td></tr>";
      out "<FORM name='bn' ACTION='baseportal.pl?htx=$htx&cmd=upfile&$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";
      out "<INPUT TYPE='hidden' NAME='htx:=' value='$htx'>";
      out "<INPUT TYPE='hidden' NAME='up_Id:=' value='$Id'>";
      out "<tr bgcolor='#f4f4f4'><td align='center' walign='center' nowrap>";
      out "<INPUT TYPE='submit' NAME='Submit' VALUE='Ein anderes Foto wählen'></form>";
      out "</td>";
      out "<FORM name='bs' ACTION='baseportal.pl?htx=$htx&cmd=upfile$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";
      out "<INPUT TYPE='hidden' NAME='up_cmd:=' value='putbild'>";
      out "<INPUT TYPE='hidden' NAME='htx:=' value='$htx'>";
      out "<INPUT TYPE='hidden' NAME='up_Id:=' value='$Id'>";
      out "<input type='hidden' name='_filec_bild=' value=2>";
      out "<td align='center' walign='center' nowrap>";
      out "<INPUT TYPE='submit' NAME='Submit' VALUE='Dieses Foto speichern'></form>";
      out "</td></tr>";
      }
      }
      

      # Hier die subs zum errechenen der Breite und Höhe

      sub formularfile {
      out <<EOF;
      <BODY>  
      <FORM ACTION="baseportal.pl?cmd=upfile&htx=$htx$up_schleife" METHOD="post" ENCTYPE="multipart/form-data">  
      <INPUT TYPE="hidden" NAME="up_cmd:=" value="vorschau">
      <INPUT TYPE="hidden" NAME="htx:=" value="$htx">
      <input type="hidden" name="_filec_bild=" value=2>
      <tr bgcolor="#f4f4f4">
      <td><font face="Verdana, Arial" size="2"><b>Foto auswählen</b></font></td>
      <td><INPUT TYPE="file" NAME="up_bild:=">
      </td></tr><tr bgcolor="#f4f4f4">
      <td colspan=2 align="center"><font face="Verdana, Arial" size="1">Es können nur Fotos im Format $erlaubte_dateitypen<br>mit einer max. Größe von $maxg Kb gespeichert werden.</font>
      </td></tr><tr bgcolor="#f4f4f4">
      <td colspan="2" align="center">
      <INPUT TYPE="submit" NAME="Submit" VALUE="Foto Vorschau">
      </td></tr>
      </FORM> 
      </BODY>
      EOF
      }
      

      sub gifsize {
      my ($GIF)=@_;
      my ($type,$a,$b,$c,$d,$s,$width,$height) ;
      $type=substr($GIF,0,6);
      if(!($type =~ m/GIF8[7,9]a/) || (length($s=substr($GIF, 6, 4))!=4) ){
      return;
      }
      ($a,$b,$c,$d)=unpack("C"x4,$s);
      $width= $b<<8|$a;
      $height= $d<<8|$c;
      return ($width,$height);
      }
      

      sub jpegsize {
      my ($JPEG)=@ _ ;
      my ($count)=2 ;
      my ($length)=length($JPEG) ;
      my ($ch)="" ;
      my ($c1,$c2,$a,$b,$c,$d,$width,$height) ;
      while (($ch ne "\xda") && ($count<$length)) {
      while (($ch ne "\xff") && ($count < $length)) {
      $ch=substr($JPEG,$count,1); 
      $count++;
      }
      while (($ch eq "\xff") && ($count<$length)) {
      $ch=substr($JPEG,$count,1); 
      $count++;
      }
      if ((ord($ch) >= 0xC0) && (ord($ch) <= 0xC3)) {
      $count+=3;
      ($a,$b,$c,$d)=unpack("C"x4,substr($JPEG,$count,4));
      $width=$c<<8|$d;
      $height=$a<<8|$b;
      return($width,$height);
      } else {
      ($c1,$c2)= unpack("C"x2,substr($JPEG,$count,2));
      $count += $c1<<8|$c2;
      }
      }   
      }
      

      sub pngsize {
      my $Buffer = shift;
      my ($width,$height) = ( undef, undef );
      if ($Buffer =~ /IHDR(.{8})/) {
      my $PNG = $1;
      ($width,$height) = unpack( "NN", $PNG );
      }
      return ($width,$height);
      }
      }
      out "</table></div>";
      }
      </perl>
       TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
          <!-- [BEGIN Seiten-Haupttext] -->
       
      <!-- [END Seiten-Haupttext] -->
          <!-- [BEGIN Master-Haupttext] -->
       
      <!-- [END Master-Haupttext] -->
      </BODY>
      <!-- [BEGIN Custom6] -->
       
      <!-- [END Custom6] -->
      </HTML>
      <!-- [BEGIN Custom7] -->
       
      <!-- [END Custom7] -->
      



      Hier vorsichtshalber auch noch das Template ( P.S. das Verzeichnis "bp-files" musste ich in "files" umschreiben- wird sonst nicht erkannt):

      <html>
      

      <head>
      <title>Kein Titel</title>
      <meta name="generator" content="Namo WebEditor v5.0">
      </head>
      

      <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
      <p><a href="http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/template&cmd=upfile">link</a></p>
      <perl>
      $dborginal="/wart4you.de/aufspielen/originalbild";
      $dbid="$fotoid";
      $dbdf="Bilddatei";
      $dbnf="Titel";
      $src="/wart4you.de/aufspielen/upload";
      

      </perl>
      <include src=$src>
      <perl>
      &upfile if ($cmd eq "upfile");
      </perl>
      

      </body>

      </html>
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Kai (6 Beiträge) am Mittwoch, 21.April.2004, 19:19. WWW: www.wart.de
    Hallo Rolf

      Kleiner Kommnunikationsfehler! Das mit $dbid="0" oder einem x-beliebigen anderen Wert ist mir schon klar.
      Gebe ich den Wert "0" in dem Template ein so wird auch die Zeile in der Datenbank mit der ID=0 bearbeitet. Das Gleiche mit Wert"1" mit der Zeile ID=1.
      Ich möchte aber gerne aus z.B Zeile 1 über einen Link das Template aufrufen und das dazu gehörige Bild auswechseln können. Das Selbe mit Zeile 2 und dem dazugehörigen Bilds. usw. Im Augenblick muß ich jedesmal im Template den Id-Wert verändern um den jeweiligen Datensatz zu bearbeiten.

      Ich habe aber noch keine Möglichkeit gefunden Deine Uploadtool so zu modifiziern, dass ich es für jede Zeile meiner DAtenbank individuell einsetzen kann.

      Grüße Kai

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Mittwoch, 21.April.2004, 21:59. WWW: www.chile-web.de
    Re: Hallo Rolf

      Hast du mal nen Link wo man sich die Seite anschauen kan?

      Womit machst du die Ausgabe? perl ?

      Gib mal nen bischen Code damit man sieht wo der Link hin soll.

      Gruß Rolf

     Antworten

    Beitrag von Kai (68 Beiträge) am Mittwoch, 21.April.2004, 22:27.
    Re: Hallo Rolf

      Beispielseite:
      http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/originalbild

      habe ganz grob dir eine einfache Datenbank gestrickt und einen Link auf das Upload-Tool gesetzt. Meine Idee ist einfach, über den Link das Upload-toll anzusteuern und dann nur das ensprechende Bild aus der gewünschten Zeile ersetzen zu können.D.h. nicht aus dem Template durch eingabe der Id die Bildzeile anzusteuern sondern direkt aus der Datenbankzeile.

      Hier das Template von der oben genannten Seite( Ganz Einfach):

      <html><head><title></title>
      

      <style>
      body { background-image:-; }
      </style>
      </head><body>
      

      <br><ul>
      <span class="Bild"></span>
      <h2><span class="Titel"></span></h2>
      <p><span class="Einleitung"></span></p></font>
      <do action=all localparams=+ db=originalbild range^=0,20 searchfields=Nr,Bilddatei,Titel,link listfields=Nr,Bilddatei,Titel,link allfields=Nr,Bilddatei,Titel,link formfields=Nr,Bilddatei,Titel,link showamount=all,sel selectbrowse=top buttonbrowse=top pagebrowse=top indexbrowse=top listtype=list language=de detail=link search=link input=link>
      

      <p><span class="Text"></span></p>
      <p><span class="Text" name="EMail"></span>
      </ul>
      

      </body></html>

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Mittwoch, 21.April.2004, 23:06. WWW: www.chile-web.de
    Re: Hallo Rolf

      mach mal anstatt <do ... den folgenden Perlblock

      <perl>
      get "Id==*","originalbild","alle";
      while(get_next(alle))
       {
       out "$Nr<br>";
       out "<img src='http://www.wart4you.de/bp-files/$Bilddatei'><br>";
       out "$Titel<br>";
       out "<a href='http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/template&cmd=upfile&fotoid=$_id'>Bild ändern</a><br>";
      }
      </perl>
      
      Die Tabelle mußt du selber drum rum bauen ;-)

      Und indem Template wo $dbid="0"; steht auf $dbid="$fotoid"; ändern

      Dann sollte es klappen.

      Und wenn es klappt versuche mal ein Sonderzeichen hochzuladen also zb. äöü.gif Ich glaube das Bild wird dir trozdem nich angezeigt :-)
      Da du zwei Felder für das Foto in der Orginaldatenbank benötigst ein Datei feld und ein Text feld.

      Gruß Rolf

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 22.April.2004, 14:18.
    Re: Hallo Rolf

      Du kommst schon zum BOM, oder? Immerhin wär Dir der Titel "weitangereistester Teilnehmer" sicher! ;-)

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Donnerstag, 22.April.2004, 21:50. WWW: www.chile-web.de
    Re: Hallo Rolf

      Hallo CB

      Eigentlich wollte ich ja (und will immer noch)... aber in Chile mahlen die Mühlen langsamer als in Good old Germany was bedeutet das es hier noch ein paar Sachen zu regeln gibt bevor ich weg kann, und das dauert alles länger als geplant, daher schaffe ich es sehr wahrscheinlich nicht. Ich habe es Till schon geschrieben.

      Mir bleibt ja ein kleiner Trost das ich mir das Video später anschauen kan.

      Aber wenn ich in D bin, könnte es sein das ich mal nach Berlin komme, dann schaue ich mal bei dir und bp rein, fals ihr in den Hochsicherheitstrakt von bp auch normal sterbliche Menschen lasst ;-))

      Bis dahin Herbstliche Grüße aus Chile
      Rolf

     Antworten

    Beitrag von Kai (68 Beiträge) am Donnerstag, 22.April.2004, 19:46.
    Re: Hallo Rolf

      Toller Ansatz,

      funktioniert auch bis auf eine Kleinigkeit. Das alte Bild wird nicht durch das neu ausgewählte Bild ersetzt. Die Bilder werden zwar in den Odrner "files" geschrieben und die Bilder werden auch richtig in der Reihenfolge mit dem Aufruf "Bild ändern" angezeigt - aber das wares dann auch schon. Irgenwie muß etwas and em Befehl zum Überschreiben der Bildes in der "Origialbild"-Datenbank fehlen.

      Wenn das Template aufgerufen wird Gibt es folgenden Code:
      http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/template&cmd=upfile&fotoid=0

      Beim Auswahl des neuen Bildes:
      wart4you.de/aufspielen/originalbild&dbid=0&dbdf=Bilddatei&dbnf=Titel

      Aber beim endgültigen Speichern des Codes fehlt z.b."....0&dbdf..." Die Null für die entsprechende Id-Kennung der Zeile. Ich nehme an, daß in diesem Moment nicht in die entsprechende Zeile geschrieben wird.


      Hast Du eine Idee?


      Grüße Kai

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Donnerstag, 22.April.2004, 21:39. WWW: www.chile-web.de
    Re: Hallo Rolf

      Hallo Kai

      Ich habe es gerade mal getestet und du hast recht, irgenwo verschluckt er die ID, hast du vieleicht an dem Upload script schon mal rumgebastet ;-) ?

      Stell noch mal den Code von dem Upload sript hier rein, da gibt es auch noch einen anderen Fehler "&&" der im Orginal script nicht vorkommt.

      Also poste mal den Code, wird kein großer Fehler sein.

      Gruß Rolf

     Antworten

    Beitrag von Kai (68 Beiträge) am Donnerstag, 22.April.2004, 23:38.
    Re: Hallo Rolf

      Bin mir keines Fehlers bewusst????:-(

      Hier der Code vom Upload-Script

      <!-- [BEGIN Custom1] -->
       
      <!-- [END Custom1] -->
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <!-- [BEGIN Custom2] -->
       
      <!-- [END Custom2] -->
      <HEAD>
      <!-- [BEGIN Custom3] -->
       
      <!-- [END Custom3] -->
      <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
      <META NAME="Generator" CONTENT="NetObjects Fusion 5.0.1 für Windows">
      <TITLE>
      
      Home
      </TITLE>
      <!-- [BEGIN Layoutscript] -->
       
      <!-- [END Layoutscript] -->
      <!-- [BEGIN Masterscript] -->
       
      <!-- [END Masterscript] -->
      <!-- [BEGIN Custom4] -->
       
      <!-- [END Custom4] -->
      </HEAD>
      <!-- [BEGIN Custom5] -->
       
      <!-- [END Custom5] -->
      <BODY BGCOLOR="#FFFFFF" TEXT="#000000" 
      <perl>
      sub upfile {
      # ---- Variabeln müssen angepasst werden ----------- #
      

      # Datenbank zum Bild zwischenspeichern
      $dbbild="/wart4you.de/aufspielen/bild";
      

      # Variable zum durchschleifen der Daten für die Orginal Datenbank
      # Diese 4 Variablen müssen vor dem Aufruf der Sub gefüllt werden.
      # $dborginal Orginal Datenbank in der das File gespeichert werden soll
      # $dbid Id des Datensatzes der orginal Datenbank zum entgültigen speichern des Bildes via mod
      # $dbdf Name des Dateifeldes der Orginal Datenbank
      # $dbnf Name des Feldes für den umgewandelten Datei Namen der Orginal Datenbank 
      $up_schleife="&dborginal=$dborginal&dbid=$dbid&dbdf=$dbdf&dbnf=$dbnf";
      

      # Zulassen von Dateitypen. Bei diesen drei wird die Breite und Höhe ermittelt.
      # Es können weitere hinzugefügt werden, bei denen wird dann aber nicht die B/H ermittelt.
      $erlaubte_dateitypen = "gif|jpg|png|GIF|JPG|PNG"; 
        
      # Maximale Größe in Byts die das Hochgeladene Bild haben darf.
      $filemax="100000"; # entspricht 100 Kb
      

      # Maximale Breite für das Vorschaubild, die Höhe des Bildes wird dann berechnet.
      $vormax="500"; # entspricht 500 pixel
      

      # Link zu dem File Verzeichniss
      $f_link="http://www.wart4you.de/files";
      

      # ---- ende ----------- #

      $maxg=$filemax/1000; # Umrechnen der Byts in Kb
      

      out "<div align=center>";
      out "<table bgcolor='#000000' width='550' cellspacing='1' cellpadding='4' border='0'>";
      out "<tr bgcolor='#e0e0e0'><td colspan=2 align='center'>";
      out "<font face='Verdana, Arial' size='3' color='#000099'><b>FOTO UPLOAD</b></font>";
      out "</td></tr>";
      

      # Aufruf des Formulars wenn neues Foto oder anderes Foto gewünscht

      if ($up_cmd eq "")
      {
      

      # Wenn ein anderes Bild gewünscht wird erst das alte Bild löschen

      if ($_put{up_Id} ne "") 
      {
      mod "Id==$_put{up_Id}",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$_put{up_Id}",$dbbild;
      }
      

      # dann das Formular zu upload ausgeben.

      &formularfile();
      }
      # ---- Ende neues / anders Bild -------------- #
      

      # ---- Wenn ein Bild gewählt und überprüft wurde zum Orginal Datensatz hinzufügen.
       
      if ($up_cmd eq putbild)
      {
      get "Id==!$_put{up_Id}",$dbbild;
      mod "Id==!$dbid",["$dbdf","$bild","_filec_bild","2","$dbnf","$bild_name"],"$dborginal";
      del "Id==$_put{up_Id}",$dbbild;
      

      # ---- Meldung ausgeben. Wer möchte kann hier auch noch ne Mail verschicken ---- #

      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<b>Ihr Foto wurde gespeichert und ist nun verfügbar.<br>Vielen Dank!</b>";
      out "</td></tr>";
      }
      

      # ---- Ende Eintrag Orginal Datenbank ---- #

      # ---- Wenn das Formular abgschickt wurde Datei speichen/überprüfen und Meldung ausgeben.
      

      if ($up_cmd eq vorschau)
      {
      $bild1=$_put{up_bild};
      

      # Überprüfen und Umwandeln von Sonderzeichen

      $bild1 =~ s/(\W)/sprintf("%%%02X",ord($1))/ge;
      $bild1 =~ s/%2E/./g;
      

      # Zwichenspeichern der Datei

      put ["bild", $_put{up_bild}, "bild_name", $bild1],"$dbbild";
      get "bild_name==!$bild1",$dbbild;
      

      # Überprüfen ob es eine zugelassene Dateiendung ist, wenn nicht Datei und Eintrag in db löschen.

      if($bild !~ /.($erlaubte_dateitypen)/)
      {
      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<font color='#cc0000'>Sie haben eine ungültige Datei ausgewählt.</br>";
      out "Bitte wählen Sie ein Foto im Format $erlaubte_dateitypen aus.</font>";
      out "</tr></td>";
      mod "Id==$Id",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$Id","$dbbild";
      &formularfile();
      } else {
      

      # Wenn Dateiendung richtig, dann Datei hohlen und größe in Kb errechnen

      $x=get "$f_link/$bild_name";
      $dateig=length($x)/1000;
      $dateigaus=sprintf('%.2f',$dateig); # auf 2 nachkommastellen
      

      # Wenn die Datei die max. Dateigröße überschreitet, Datei und Eintrag in db löschen.

      if (length($x) > $filemax)
      {
      out "<tr bgcolor='#f4f4f4'><td align='center' colspan='2'>";
      out "<font color='#cc0000'>Das von ihnen gewählte Foto hatt $dateigaus Kb und ist somit zu groß.</br>";
      out "Es können nur Fotos gespeichert werden die max. $maxg Kb nicht überschreiten.</font>";
      mod "Id==$Id",["bild","","_filec_bild","1"],"$dbbild";
      del "Id==$Id",$dbbild;
      out "</td></tr>";
      &formularfile();
      } else {
      

      # Wenn Dateigröße und Endung Ok, dann Bild als Vorschau mit breite, höhe und Größe in Kb ausgeben

      $name1="$bild_name";
      @name = split(/\./,$name1);
      if ($name[1] eq "gif" or $name[1] eq "GIF")
      {
      my($w,$h)=&gifsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } elsif ($name[1] eq "jpg" or $name[1] eq "JPG") {
      my($w,$h)=&jpegsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } elsif ($name[1] eq "png" or $name[1] eq "PNG") {
      my($w,$h)=&pngsize($x);
      $wout="</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>Breite: <b>$w</b> - Höhe: <b>$h</b>";
      $w_out=$w;
      $h_out=$h;
      } else {
      out "";
      }
      if ($w_out > $vormax) {
      $h_out=$h_out/$w_out*$vormax;
      $w_out=$vormax;
      }
      

      out "<tr bgcolor='#f4f4f4'><td align='left' colspan=2>";
      out "Foto Name: <b>$bild</b>";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='center' colspan=2>";
      out "<img src='$f_link/$bild_name' width=$w_out height=$h_out alt='Vorschaubild $bild Breite $w_out Höhe $h_out'>";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>";
      out "<b>Fotoeigenschaften:</b>";
      out "$wout";
      out "</td></tr><tr bgcolor='#f4f4f4'><td align='left' colspan='2'>";
      out "Dateigrösse: <b>$dateigaus Kb</b>";
      out "</td></tr>";
      out "<FORM name='bn' ACTION='baseportal.pl?htx=$htx&cmd=upfile&$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";
      out "<INPUT TYPE='hidden' NAME='htx:=' value='$htx'>";
      out "<INPUT TYPE='hidden' NAME='up_Id:=' value='$Id'>";
      out "<tr bgcolor='#f4f4f4'><td align='center' walign='center' nowrap>";
      out "<INPUT TYPE='submit' NAME='Submit' VALUE='Ein anderes Foto wählen'></form>";
      out "</td>";
      out "<FORM name='bs' ACTION='baseportal.pl?htx=$htx&cmd=upfile$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";
      out "<INPUT TYPE='hidden' NAME='up_cmd:=' value='putbild'>";
      out "<INPUT TYPE='hidden' NAME='htx:=' value='$htx'>";
      out "<INPUT TYPE='hidden' NAME='up_Id:=' value='$Id'>";
      out "<input type='hidden' name='_filec_bild=' value=2>";
      out "<td align='center' walign='center' nowrap>";
      out "<INPUT TYPE='submit' NAME='Submit' VALUE='Dieses Foto speichern'></form>";
      out "</td></tr>";
      }
      }
      

      # Hier die subs zum errechenen der Breite und Höhe

      sub formularfile {
      out <<EOF;
      <BODY>  
      <FORM ACTION="baseportal.pl?cmd=upfile&htx=$htx$up_schleife" METHOD="post" ENCTYPE="multipart/form-data">  
      <INPUT TYPE="hidden" NAME="up_cmd:=" value="vorschau">
      <INPUT TYPE="hidden" NAME="htx:=" value="$htx">
      <input type="hidden" name="_filec_bild=" value=2>
      <tr bgcolor="#f4f4f4">
      <td><font face="Verdana, Arial" size="2"><b>Foto auswählen</b></font></td>
      <td><INPUT TYPE="file" NAME="up_bild:=">
      </td></tr><tr bgcolor="#f4f4f4">
      <td colspan=2 align="center"><font face="Verdana, Arial" size="1">Es können nur Fotos im Format $erlaubte_dateitypen<br>mit einer max. Größe von $maxg Kb gespeichert werden.</font>
      </td></tr><tr bgcolor="#f4f4f4">
      <td colspan="2" align="center">
      <INPUT TYPE="submit" NAME="Submit" VALUE="Foto Vorschau">
      </td></tr>
      </FORM> 
      </BODY>
      EOF
      }
      

      sub gifsize {
      my ($GIF)=@_;
      my ($type,$a,$b,$c,$d,$s,$width,$height) ;
      $type=substr($GIF,0,6);
      if(!($type =~ m/GIF8[7,9]a/) || (length($s=substr($GIF, 6, 4))!=4) ){
      return;
      }
      ($a,$b,$c,$d)=unpack("C"x4,$s);
      $width= $b<<8|$a;
      $height= $d<<8|$c;
      return ($width,$height);
      }
      

      sub jpegsize {
      my ($JPEG)=@ _ ;
      my ($count)=2 ;
      my ($length)=length($JPEG) ;
      my ($ch)="" ;
      my ($c1,$c2,$a,$b,$c,$d,$width,$height) ;
      while (($ch ne "\xda") && ($count<$length)) {
      while (($ch ne "\xff") && ($count < $length)) {
      $ch=substr($JPEG,$count,1); 
      $count++;
      }
      while (($ch eq "\xff") && ($count<$length)) {
      $ch=substr($JPEG,$count,1); 
      $count++;
      }
      if ((ord($ch) >= 0xC0) && (ord($ch) <= 0xC3)) {
      $count+=3;
      ($a,$b,$c,$d)=unpack("C"x4,substr($JPEG,$count,4));
      $width=$c<<8|$d;
      $height=$a<<8|$b;
      return($width,$height);
      } else {
      ($c1,$c2)= unpack("C"x2,substr($JPEG,$count,2));
      $count += $c1<<8|$c2;
      }
      }   
      }
      

      sub pngsize {
      my $Buffer = shift;
      my ($width,$height) = ( undef, undef );
      if ($Buffer =~ /IHDR(.{8})/) {
      my $PNG = $1;
      ($width,$height) = unpack( "NN", $PNG );
      }
      return ($width,$height);
      }
      }
      out "</table></div>";
      }
      </perl>
       TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
          <!-- [BEGIN Seiten-Haupttext] -->
       
      <!-- [END Seiten-Haupttext] -->
          <!-- [BEGIN Master-Haupttext] -->
       
      <!-- [END Master-Haupttext] -->
      </BODY>
      <!-- [BEGIN Custom6] -->
       
      <!-- [END Custom6] -->
      </HTML>
      <!-- [BEGIN Custom7] -->
       
      <!-- [END Custom7] -->
      



      Hier vorsichtshalber auch noch das Template ( P.S. das Verzeichnis "bp-files" musste ich in "files" umschreiben- wird sonst nicht erkannt):

      <html>
      

      <head>
      <title>Kein Titel</title>
      <meta name="generator" content="Namo WebEditor v5.0">
      </head>
      

      <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
      <p><a href="http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/template&cmd=upfile">link</a></p>
      <perl>
      $dborginal="/wart4you.de/aufspielen/originalbild";
      $dbid="$fotoid";
      $dbdf="Bilddatei";
      $dbnf="Titel";
      $src="/wart4you.de/aufspielen/upload";
      

      </perl>
      <include src=$src>
      <perl>
      &upfile if ($cmd eq "upfile");
      </perl>
      

      </body>

      </html>
      

     Antworten

    Beitrag von Rolf Schubert (21 Beiträge) am Freitag, 23.April.2004, 00:44. WWW: www.chile-web.de
    Re: Hallo Rolf

      >Bin mir keines Fehlers bewusst????:-( 
      
      Ich mir manchmal auch nicht ;-)

      Ich glaube ich habe es jetzt gefunden.

      Nr.1
      Mach mal aus
      <BODY BGCOLOR="#FFFFFF" TEXT="#000000" 
      
      ein
      <BODY BGCOLOR="#FFFFFF" TEXT="#000000">

      Nr.2
      Im Upload Script - Formular
      Hier hast du ein & rein gezaubert
      out "<FORM name='bn' ACTION='baseportal.pl?htx=$htx&cmd=upfile&$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";
      
      ändern in
      out "<FORM name='bn' ACTION='baseportal.pl?htx=$htx&cmd=upfile$up_schleife' METHOD='post' ENCTYPE='multipart/form-data'>";

      Das war was ich so auf die schnelle im Upload Formular gefunden habe.

      Nr.3
      Im Template wo das script aufgerufen wird mach mal aus
      $dbid="$fotoid";
      $dbdf="Bilddatei";
      $dbnf="Titel";
      

      folgendes
      $dbid="$fotoid" if ($_get{dbid} eq "");
      $dbdf="Bilddatei" if ($_get{dbdf} eq "");
      $dbnf="Titel" if ($_get{dbnf} eq "");
      

      Damit er die Variable nur füllt wenn sie nicht via upload script übergeben wurden.

      Und in dem kleinen get script zum anzeigen der Bilder mit dem Ändern Link das ich dir geschrieben habe muß du folgendes ändern:

      out "<img src='http://www.wart4you.de/files/$Titel'><br>";
      out "$Titel<br>";
      out "$Bilddatei<br>";
      

      Das ist nötig wegen den Sonderzeichen äüö usw. da in $Bilddatei der Orginal Bildname mit sonderzeichen steht, und wenn du dieses via Link (img tag) aufrufst würde er kein Bild anzeigen. Der Orginal Name im Dateifeld wird nur zum ändern und löschen des Bildes benötigt.

      Im Gegnsatz dazu steht im Feld $Titel der Umgewandelte Datei Name also werden äüö in html verständlichen Code umgewandelt. Und in deinem img tag must du den umgewandelten Namen ($Titel) verwenden, dann werden auch Bilder mit Sonderzeichen angezeigt.

      Aus diesem Grunde zwei Felder in der Orginaldatenbank
      $Bilddatei als Datei mit automatisch löschen
      $Titel als Text mit dem Umgewandelten Namen zum Aufruf des Bildes
      

      Einfach mal testen mit öäü.gif zum Beispiel
      Ich hoffe es war verständlich ;-)

      Und wenn es klappt, dann melde dich bitte noch mal, damit ich das mit den Variablen in der BIB ändere.

      Gruß aus Chile
      Rolf

     Antworten

    Beitrag von Kai (68 Beiträge) am Samstag, 24.April.2004, 19:55.
    Re: Hallo Rolf

      Hallo Rolf,

      hat alles prima geklappt. Deine Verbesserungen sind "Fantastisch".
      Also schnell in Bib mit den Verbesserungen.

      P.S. nur in der Datanbank "Originalbild" die Zeile :
      "out "$Titel<br>";" weglassen. Ansonsten wir der Titel zweimal ausgegeben.

      out "<img src='http://www.wart4you.de/files/$Titel'><br>";
      out "$Titel<br>"; # Diese Zeile nicht verwenden
      out "$Bilddatei<br>";
      



      Grüße Kai ( Ich hoffe, dass ich auch in der Zukunft um Rat fragen darf)

     Antworten


     
 Liste der Einträge von 30750 bis 30900:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!