Multiple Fileupload

Hi,

der Pfad stimmt anscheinend nicht:
$pfad = "Bilder/galeriepics/";

Ändern in:
$pfad = $_SERVER["DOCUMENT_ROOT"]."Bilder/galeriepics/";

Gib den dann mal per die($pfad) aus und prüfe ihn nach.

Weiterhin wundert es mich, dass Du mit getimagesize die Größe einen Bildes ausliest, welches noch gar nicht existiert.
Müßte eigentlich getimagesize($pfad.$$name1); sein.

Die weiteren Fehler sind "Folgefehler", da die Bildgröße nicht bestimmt werden konnte.

Ändere erstmal diese Dinge, habe den Code nicht weiter angeschaut.

Gruß tyg3r
 
Zuletzt bearbeitet:
Hi, danke für deine Antwort.

Daran lag es aber leider nicht, der Fehler kommt immer noch genauso und die Bilder werden ja hochgeladen und auch die Thumbs generiert UND auch in die DB eingetragen. Sehr komisch.
 
Ich komme leider nicht weiter, weiß niemand, an was das liegen könnte?

Wäre super wenn mir jemand helfen könnte.
 
Hallo sonicks,

PHP:
Warning: Division by zero in /home/sonicks/html/essential/admin/galerie_index.php on line 47
<- Sagt aus das mit einem Wert gerechnet wird, der 0 ist. (so in der Art)
Kann es sein das $height keinen Wert enthält?

Mfg Donell
 
Nein, eigentlich nicht.
Ich verwende das Script ja schon für nen einzelnen Upload ohne Arrays & foreach und da funktioniert es ja auch.
Zudem versteh ich nicht, warum die Fehler angezeigt werden, obwohl alles hochgeladen und eingetragen wird.
Die ganzen Fehler werden übrigens 6 Mal angezeigt. Also 6 Mal das Ganze da oben.
 
Die erste fehlermeldung ist entscheidend:
Warning: getimagesize(Bilder/galeriepics/76996) [function.getimagesize]: failed to open stream: No such file or directory in /home/sonicks/html/essential/admin/galerie_index.php on line 41

Bedeutet ganz einfach, dass das Bild nicht existiert.
Wurde also mit dem copy - Befehl zuvor nicht angelegt.

Meine Vermutung ist, dass schon beim Zugriff auf das hochgeladene Bild ein Fehler ist.
Kann es sein, dass es eher
$_FILES['uploadfile_'.$i]['tmp_name']
als
$_FILES['uploadfile'.$i]['tmp_name']
sein sollte (oder ähnliches, bitte prüfen)?

Dann bitte eine Prüfung einbauen ob das Uploadfile überhaut existiert:
PHP:
if(!empty($_FILES['uploadfile'.$i])){
   // bildbearbeitungs routiene
}
else{
    echo "Fehler beim Upload!";
}

Du solltest Dich in dem Code etwas mehr absichern und hin und wieder auch prüfen, ob das Bild bzw. Variablen überhaupt vorhanden ist.
if(file_exists($end_name)) ist dafür geeignet.

Dann mal die Fehlerausgabe scharf stellen, damit einem Zugriffe auf nicht existierende Array-Keys angesagt werden:
error_reporting(E_ALL|E_STRICT);

Dann sind die Anführungsstriche bei der Funktion getimagesize überflüssig. Du arbeitest dort doch mit einer Variablen. Anführungsstriche machen nur bei Strings einen Sinn.

Gruß tyg3r
 
Morgen erst mal... Escapen heist das Zauberwort Er versucht deinen Variabel zu teilen die / müssen als Text in den Variabelwert anders eingebaut werden.


Aus
PHP:
pfad = $_SERVER["DOCUMENT_ROOT"]."Bilder/galeriepics/";
machst du am besten
PHP:
        $pfadb = "Bilder";
        $pfadg = "galeriepics";
        $pfad = $_CONFIG['img_path'] . "$pfadb/$pfadg/";

Je nach anwendungsbereich must du den Pfad später so aufrufen:

PHP:
$input= escapeshellarg($pfad);
escapeshellarg sorgt dafür das leerzeichen im Pfad korreckt als solche vom system erkannt werden und nicht als sonderzeichen.
Hoffe es hat die geholfen...

mfg Ronaldl
 
Hi,

Also hab das mit den Thumbnails nun anders geregelt und es funktioniert.
Danke trotzdem.

Jetzt habe ich noch eine Frage bezüglich den Beschreibungen für die einzelnen Bilder. Ich möchte für jedes der 6 Bilder eine einzelnen Beschreibung eintippen können und habe nun auch 6 Textfelder die beschreibung1 beschreibung2 beschreibung3 usw. heißen. Wie kann ich die Beschreibungen passend zu den Bildern in die DB Eintragen.
Bei meinem Code, bekomm ich in der Beschreibung Spalte in der DB nur Array zu sehen:

PHP:
        for ($i = 1; $i < 7; $i ++) { 

           // Upload der Datei
           $pfad = "Bilder/galeriepics/"; 

           if($_FILES['uploadfile'.$i]['tmp_name'] == '') continue 1;
             $name1 = $_FILES['uploadfile'.$i]['name'];  
             $tempname1 = $_FILES['uploadfile'.$i]['tmp_name']; 
             $type1 = $_FILES['uploadfile'.$i]['type']; 
             $size1 = $_FILES['uploadfile'.$i]['size']; 

			 $time = time();
             $descri = array($beschreibung.$i);

			   
             @copy ($tempname1,$pfad.$time.$name1);

             // Bilder & Thumbs in DB eintragen
             $bild_db_eintrag = $serv_url_admin.$pfad.$time.$name1 ;
             $eintrag_up = "INSERT INTO galerie (date, mid, pic, catid, beschreibung) VALUES ('".time()."', '$_SESSION[user_id]', '$bild_db_eintrag', '$select', '$descri')";

HTML:
<div class="form"><input type="file" name="uploadfile1" class="textbox"></div>
    <div class="form"><textarea name="beschreibung1" rows="3" class="texta" ></textarea></div>
    <div class="form"><input type="file" name="uploadfile2" class="textbox"></div>
    <div class="form"><textarea name="beschreibung2" rows="3" class="texta" ></textarea></div>
.....
 
Zurück