Re: Hilfe bei Uploaadtool aus der Bibliothek - 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 Rolf Schubert (63 Beiträge) am Montag, 19.April.2004, 15:14. WWW: www.chile-web.de
    Re: Hilfe bei Uploaadtool aus der Bibliothek


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Kai (68 Beiträge) am Montag, 19.April.2004, 06:10.
    Hilfe bei Uploaadtool aus der Bibliothek

      Hallo Baseportaluser,
      beschäftige mich immer noch mit dem Uploadtool aus Bibliothek ( Verzeichnis "tools").
      Mein Verzeichnisordner lautet: Home/aufspielen/upload und Home/aufspielen/template und Die Originaldatenbank lautet "Origialbild".
      Als Anhang habe ich die beiden Seiten nach meinen Bedürfnissen konfiguriert jedoch ohne Erfolg.
      Vielleich findet ja einen von Euch den Fehler in den beiden Scripts.Würde mich freuen wenn Ihr mal hinein schaut.

      "Template"
      -------------------------------------------------
      <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/upload">link</a></p>
      <perl>
      $dborginal="/wart4you.de/aufspielen/originalbild";
      $dbid="0";
      $dbdf="bild";
      $dbnf="bild_name";
      $src="/wart4you.de/aufspielen/upload";
      

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

      </body>

      </html>
      
      -------------------------------------------------

      "Upload"


      <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>
      

     Antworten

    Beitrag von Rolf Schubert (63 Beiträge) am Montag, 19.April.2004, 15:14. WWW: www.chile-web.de
    Re: Hilfe bei Uploaadtool aus der Bibliothek

     Antworten

    Beitrag von kai (8 Beiträge) am Mittwoch, 21.April.2004, 06:48.
    Re: Hilfe bei Uploaadtool aus der Bibliothek

      Hallo Rolf,

      Du hast Recht gehabt,
      ich habe den Wald vor lauter Bäume nicht gesehen. Ich habe wirklich einfach nur den Anhang "&cmd=upfile" vergessen. Nun läuft es Einwandfrei.
      Meine Problem ist nur noch die Zuordnung des Bildes zu dem jeweiligen Datensatz.
      Wenn ich aus meiner Datenbank miz z.B. 10 Einträgen jedem Eintrag ein Bild zuordnen möchte müsste dieses theoretisch aus jedem der 10 Datensätze über einen Link möglich sein. Voreingestellt ist aber $dbid="0". D.h. bei dem Upload wird immer nur der 1 Datensatz mit dem Id-Wert=0 angsteuert. Muß ich dem Id-Wert möglichweise auch in der Origialdatenbank und Zwischen-speicherdatenbank "bild" anders ausweisen oder das Upload-file modfizieren.
       Für Deinen Rat bedanke ich mich schon im voraus 
      

      viele Grüße

      Kai

     Antworten

    Beitrag von Rolf Schubert (21 Beiträge) am Mittwoch, 21.April.2004, 16:33. WWW: www.chile-web.de
    Re: Hilfe bei Uploaadtool aus der Bibliothek

      Denke nicht so kompliziert ;-)
      Die 0 in $dbid="0" mußt du durch die ID des Datensatzes auswechseln.

      Beispiel:

      in irgendeinem Teplate

      <perl>
      get "feld==!irgendetwas","/deineOrginalDatenbank";
      

      http://www.wart4you.de/cgi-bin/baseportal.pl?htx=/wart4you.de/aufspielen/template&cmd=upfile&fotoid=$_id
      </perl>
      


      Und indem Template wo $dbid="0"; steht

      $dbid="$fotoid";
      

      Lese dir am besten den Eintrag in der BIB noch mal in ruhe durch. Da du auch ein Dateifeld und ein normales Textfeld für das Bild in der Orginal Datenbank benötigst.

      $dbdf="bild"; # Dateifeld in der Orginal DB kan auch anders als Bild heisen also FOTO dann würde es so ausehen $dbdf="FOTO";
      $dbnf="bild_name"; # Textfeld mit dem gewandeltem Namen kan auch anders sein.
      

      Gruß Rolf

     Antworten


     
 Liste der Einträge von 30751 bis 30901: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.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!