Re: problem mit uploadtool aus der bib - 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 Tini (187 Beiträge) am Samstag, 24.April.2004, 00:53.
    Re: problem mit uploadtool aus der bib

      hallo rolf,

      :-( das bild wird zwar im verzeichnis gespeichert,
      aber nicht in der db.
      wie vorher.

      tini


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Tini (187 Beiträge) am Freitag, 23.April.2004, 23:29.
    problem mit uploadtool aus der bib

      hallo,

      ich versuche mich gerade am upload-tool von rolf aus der bib.

      ich habe alle anpassungen vorgenommen, gibt ja eigentlich auch
      nicht viele.

      mein problem:
      das bild wird in mein fileverzeichnis hochgeladen.
      bei der voransicht auch temporär in der einen db zwischengespeichert
      aber nicht in der original-db.

      ???
      :-( tini

      aufruftemplate:

      <perl>
      $dborginal="/domain/bilder";
      

      # Die ID des Datensatzes
      $dbid="0";
      

      # Name des Dateifeldes der Originaldatenbank
      $dbdf="datei";
      

      # Name des Textfeldes in der Original Datenbank
      $dbnf="titel";
      

      # Pfad des Templats mit dem Upload File
      $src="/domain/upload";
      </perl>
      <include src=$src>
      <perl>
      &upfile if ($cmd eq "upfile");
      </perl>
      
      ------------------------------------------

      upload-template:

      <perl>
      sub upfile {
      

      # Datenbank zum Bild zwischenspeichern
      $dbbild="domain/bild";
      

      $up_schleife="&dborginal=$dborginal&dbid=$dbid&dbdf=$dbdf&dbnf=$dbnf";
      $erlaubte_dateitypen = "gif|jpg|png|GIF|JPG|PNG"; 
      $filemax="100000"; # entspricht 100 Kb
      $vormax="500"; # entspricht 500 pixel
      

      # Link zu dem File Verzeichniss
      $f_link="http://domain/files";
      

     Antworten

    Beitrag von Rolf Schubert (21 Beiträge) am Freitag, 23.April.2004, 23:45. WWW: www.chile-web.de
    Re: problem mit uploadtool aus der bib

      Das Tehma hatten wir gerade ;-)

      Versuche mal folgendes:

      Im Template wo das script aufgerufen wird mach mal aus
      $fotoid $Bilddatei $Titel mußt du gegen deine Variablen austauschen.
      

      $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 dann bitte kurz Meldung ob es läuft oder nicht.

      Gruß aus Chile
      Rolf

     Antworten

    Beitrag von Tini (187 Beiträge) am Samstag, 24.April.2004, 00:53.
    Re: problem mit uploadtool aus der bib

      hallo rolf,

      :-( das bild wird zwar im verzeichnis gespeichert,
      aber nicht in der db.
      wie vorher.

      tini

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Samstag, 24.April.2004, 01:47. WWW: www.chile-web.de
    Re: problem mit uploadtool aus der bib

      Ist der Code den du hier geschrieben hast derselbe den du verwendest ?

      Gibt es einen Datensatz in der Orginaldatenbank mit der ID 0, da du die Variable $dbid="0"; angibst, das script kann nur vorhandene Datensätze ändern, keine neuen hinzufügen.

      Ansonsten gib mal den ganzen Code vom Aufruftemplate und evt. einen Link

      Gruß Rolf

     Antworten

    Beitrag von Tini (187 Beiträge) am Samstag, 24.April.2004, 21:19.
    Re: problem mit uploadtool aus der bib

      hallo rolf,

      ich habe alles aus der bib genommen und entsprechend die felder angepaßt.

      der upload funktioniert und wird auch im verz. files gespeichert.
      die zwischenspeicherung funktioniert auch.
      lediglich die speicherung in der original-db funktioniert nicht.

      nachfolgend die templates.

      danke
      tini



      aufruftemplate:
      ===============


      <perl>
      $dborginal="/domain/upload/bilder";
      

      # Die ID des Datensatzes zu dem das Bild gespeichert werden soll.
      $dbid="$fotoid" if ($_get{dbid} eq "");
      

      # Name des Dateifeldes der Originaldatenbank
      $dbdf="$datei" if ($_get{dbdf} eq "");
      

      # Name des Textfeldes in der Original Datenbank für den umgewandelten Dateinamen.
      $dbnf="$titel" if ($_get{dbnf} eq "");
      

      # Pfad des Templats mit dem Upload File
      $src="/domain/upload/upload";
      

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

      upload-template:
      ================

      <perl>
      sub upfile {
      # Datenbank zum Bild zwischenspeichern
      $dbbild="/domain/upload/bild";
      $up_schleife="&dborginal=$dborginal&dbid=$dbid&dbdf=$dbdf&dbnf=$dbnf";
      $erlaubte_dateitypen = "gif|jpg|png|GIF|JPG|PNG"; 
      $filemax="100000"; # entspricht 100 Kb
      $vormax="500"; # entspricht 500 pixel
      $f_link="http://www.domain/files";
      

      $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='http://www.domain/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='http://www.domain/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="http://www.domain/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>
      

     Antworten

    Beitrag von Rolf Schubert (21 Beiträge) am Samstag, 24.April.2004, 23:06. WWW: www.chile-web.de
    Re: problem mit uploadtool aus der bib

      Ich denke mal das du die Variablen nicht füllst.

      Nehmen wir mal folgendes an:

      Das Template Upload liegt im Verzeichniss "upload"
      Deine Orginal Datenbank heist "foto" und liegt im Verzeichniss "upload"
      Den Datensatz den du bearbeiten willst, hatt die Id "5"
      Das Dateifeld in der Orginal Datenbank heist "datei"
      Und das Textfeld für den umgewandeten Date Namen in der Orginal Datenbank heist "datei_name"

      Dann muß folgendes so aussehen:
      domain mußt du mir deiner Domain auswechseln ;-)

      <perl>
      $dborginal="/domain/upload/foto";
       
      

      # Die ID des Datensatzes zu dem das Bild gespeichert werden soll.


      $dbid="5" if ($_get{dbid} eq "");
       
      

      # Name des Dateifeldes der Originaldatenbank


      $dbdf="datei" if ($_get{dbdf} eq "");
       
      

      # Name des Textfeldes in der Original Datenbank für den umgewandelten Dateinamen.


      $dbnf="datei_name" if ($_get{dbnf} eq "");
       
      

      # Pfad des Templats mit dem Upload File


      $src="/domain/upload/upload";
      

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

      </perl>
       

      Lese dir den Eintrag in der BIB nochmal genau durch, desweiteren sind die folgenden zwei Links hilfreich:

      http://baseportal.de/baseportal/baseportal/forum&wcheck=1&Pos=9918
      http://baseportal.de/baseportal/baseportal/forum&wcheck=1&Pos=9897


      Gruß Rolf

     Antworten


     
 Liste der Einträge von 30601 bis 30751: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!