Anzeige

Gleichzeitiger Upload mehrer Bilder

Gleichzeitiger Upload mehrer Bilder | PSD-Tutorials.de

Erstellt von headshotsmiley, 23.09.2008.

  1. Gleichzeitiger Upload mehrer Bilder
    Hallo!

    zuerst: Ich habe die Suchfunktion benutzt und nichts gefunden was mich weiterbringt!

    Mein Problem:

    ich möchte gerne mit einem skript mehrere bilder gleichzeitig hochladen, verkleinern (einmal als thumbnail und einmal als "großansicht"). Ich habe dazu ein Formular gebastelt mit <input type="file" name="bild1"> <input type="file" name="bild2"> <input type="file" name="bild3">

    mein PHP script sieht so aus:

    PHP:
    1. for($i = 1; $i <= 3; $i++) {
    2.                             if(isset($_FILES['bild'.$i])) {
    3.                                 switch($_FILES[datei][type]) {
    4.                                     case "image/jpeg":
    5.                                         $error = false;
    6.                                         $endung = "jpeg";
    7.                                         break 1;
    8.                                     default:
    9.                                         $error = true;
    10.                                 }
    11.                                 if(!$error) {
    12.                                     if(move_uploaded_file($_FILES['bild'.$i]['tmp_name'], htmlspecialchars(basename($_FILES['bild'.$i]['name'] ))))
    13.                                     $datei = "images/tmp/".$_POST[artnr].".".$endung;
    14.                                     rename($_FILES['bild'.$i]['name'],$datei);
    15.                                     $PicPathOut="images/shop/";
    16.  
    17.                                     // Kleine Bilddaten feststellen
    18.                                     $size=getimagesize($datei);
    19.                                     $breite=$size[0];
    20.                                     $hoehe=$size[1];
    21.                                     $neueBreite=200;
    22.                                     $neueHoehe=intval($hoehe*$neueBreite/$breite);
    23.  
    24.                                     if($size[2]==2) {
    25.                                     // JPG
    26.                                     $altesBild=ImageCreateFromJPEG($datei);
    27.                                     $neuesBild=ImageCreate($neueBreite,$neueHoehe);
    28.                                     ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
    29.                                     ImageJPEG($neuesBild,"$PicPathOut".$_POST[artnr]."k_".$i.".jpeg");
    30.                                     }
    31.  
    32.                                     // Grosse Bilddaten feststellen
    33.                                     $neueBreite=500;
    34.                                     $neueHoehe=intval($hoehe*$neueBreite/$breite);
    35.  
    36.                                     if($size[2]==2) {
    37.                                     // JPG
    38.                                     $neuesBild=ImageCreate($neueBreite,$neueHoehe);
    39.                                     ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
    40.                                     ImageJPEG($neuesBild,"$PicPathOut".$_POST[artnr]."g_".$i.".jpeg");
    41.                                     }
    42.                                 }
    43.                             }
    leider funktioniert es nicht so wie ich es will und in den entsprechenden ordnern finde ich auch keine dateien (ftp)

    PS: habe meinen formularheader schon mit ectype="multipart/form-data" ausgestattet....

    kann mir da einer helfen?
     
    #1      
  2. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    mit welchem browser?
     
    #2      
  3. Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    safari.... aber das muss auf allen funktionieren
     
    #3      
  4. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    IE sendet z.B. image/pjpeg.

    Frage, was hast Du Dir bei folgendem gedacht?

    PHP:
    1.  
    2. if(move_uploaded_file($_FILES['bild'.$i]['tmp_name'], htmlspecialchars(basename($_FILES['bild'.$i]['name'] ))))
    3. $datei = "http://www.psd-tutorials.de/modules/Forum/images/tmp/".$_POST[artnr].".".$endung;
    4. rename($_FILES['bild'.$i]['name'],$datei);
    5.  
    Warum nicht gleich bei move_uploaded_file in das richtige Verzeichnis verschieben?

    PHP:
    1.  
    2. if(move_uploaded_file($_FILES['bild'.$i]['tmp_name'], "http://www.psd-tutorials.de/modules/Forum/images/tmp/".$_POST['artnr'].".".$endung))
    3.  
    Und nebenbei, $_FILES['...']['name'] ist schon basename, und ob es Sinn macht z.B. aus einem & ein &amp; zu machen möchte ich auch mal bezweifeln.

    Dann solltest Du Dir überlegen ob Du alles Nachfolgende der if-Anweisung nicht vielleicht in Klammern setzt {}. So wie es jetzt ist, werden ein paar mehr Sachen ausgeführt, selbst wenn Deine Bedingung nicht erfüllt ist.

    Sind so die ersten Sachen, die mir auffallen.

    Edit: keine Ahnung warum die Forensoftware mir hier jetzt die URL vom Forum reinhaut?! Musst Du Dir wegdenken, wenn es noch so angezeigt wird (Ich hab das nicht geschrieben) :D
     
    Zuletzt bearbeitet: 23.09.2008
    #4      
  5. code_Madman

    code_Madman Noch nicht viel geschrieben

    Dabei seit:
    20.03.2007
    Beiträge:
    8
    Geschlecht:
    männlich
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    Hast du kontrolliert, dass die Daten auch wirklich in der Variablen stecken? Ausserdem: Speicherst du die Bilder (die neuen) auch irgendwo weg?
    Ist die Temporäre Datei vorhanden, und er kopiert nur nicht richtig?

    Evtl. kann dir eine der Fragenstellungen schon weiterhelfen.

    LG
     
    #5      
  6. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    Falsches Jahrtausend.

    @netbandit: Mit move_uploaded_file hab ich auch schon schlechte Erfahrungen gemacht, das stellte sich immer so an als wäre keine Datei hochgeladen worden. Irgendwo hab ich mich also blöd angestellt und mir dann per rename den Weg drum rum hacken müssen ... könnte mir vorstellen, dass das viele andere auch machen.
     
    Zuletzt bearbeitet: 26.09.2008
    #6      
  7. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    erzähl (falsches Jahrtausend).
     
    #7      
  8. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    Die Frage nach "mit welchem Browser soll's funktionieren" gehört so ca. ins Jahr 1998.
     
    #8      
  9. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    Bei einer Fehlersuche würde ich Schritt für Schritt das oben erwähnte Script debugen.
    Als erstes würde ich switch() überprüfen, ob dort überhaupt richtig abgefragt wird.
    Was hält einen davon ab, dort mal als Test eine echo-Ausgabe zu machen?

    break 1; sieht nett aus, aber nur break; macht es auch :)
    Bei switch() -> default kommt auch ein break; rein :)
    Und kann kann man erstmal gucken, was die $error ausgibt - was dann Schritt 1 wäre.

    Wenn soweit alles in Ordnung ist, kann man prüfen ob die Datei überhaupt gespeichert wurde. Auch hier reicht es vollkommen aus, hinter if(move_uploaded_file ... mal ein echo 1; zu schreiben. Das wäre dann Schritt 2 :)

    Zum Schluss noch der Hinweis, dass die GDlib recht viel Speicher (RAM) verbraucht.
    Wenn also ein Bild mit der GDlib erstellt wird, dann den Speicher auch frei geben, damit nächste Anwendungen nicht stehen bleiben, oder das Script komplett versagt.
    Siehe -> ImageDestroy()
     
    #9      
  10. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Gleichzeitiger Upload mehrer Bilder
    AW: Gleichzeitiger Upload mehrer Bilder

    Ach so, nein: Ich meinte eigentlich in welchem Browser funktioniert es nicht, bzw. tritt der Fehler auf. Hatte erst vermutet, dass beim Prüfen von $_FILES['datei']['type'] der Fehler ist, da der IE image/pjpeg statt image/jpeg sendet.

    Im übrigen habe ich nur

    geschrieben. Das "soll's funktionieren" hast Du Dir dazu gedacht. ;)
     
    #10      
x
×
×
teststefan