Upload von mehreren Datein gleichzeitig :: Problem

Friesi

Erfahrenes Mitglied
Also ich hab folgendes Problem:
Ich stelle mir das so vor:
upload.jpg


Hier kann man nun die Datein angeben die man Uploaden möchte.
In HTML hab ich das so gemacht:

PHP:
<form enctype="multipart/form-data" method="post" action="$SELF_PHP?open=step2">
<table border="0">
  <tr>
    <td width="100%"><input name="file1" type="file" size="21"></td>
  </tr>
  <tr>
    <td width="100%"><input name="file2" type="file" size="21"></td>
  </tr>
  <tr>
    <td width="100%"><input name="file3" type="file" size="21"></td>
  </tr>
  <tr>
    <td width="100%"><input name="file4" type="file" size="21"></td>
  </tr>
</table>
<input type="submit" value="Upload"></p>
</form>

unter open=step2 hab ich dieses:

PHP:
$name[1] = date("j.n.Y-H.i.s");
$tempname = $_FILES['file1']['tmp_name']; 
$name[2] = $_FILES['file1']['name']; 
$type = $_FILES['file1']['type']; 
$size = $_FILES['file1']['size']; 
$filename = implode("_",$name);
if($type != "image/gif" && $type != "image/pjpeg") { 
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
} 
if($size > "204800") { 
$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 200 KB!"; 
} 
If(empty($err)) { 
copy("$tempname", "$filename"); 
echo "Die Datei $filename wurde erfolgreich hochgeladen!"; 
} 
else { 
foreach($err as $error) 
echo "$error<br>"; 
}

für die file2 wollte ich dann einfach dies hier ersetzten:

PHP:
$tempname = $_FILES['file2']['tmp_name']; 
$name[2] = $_FILES['file2']['name']; 
$type = $_FILES['file2']['type']; 
$size = $_FILES['file2']['size'];

Doch das macht er nicht, er gibt mir dann immer die Meldung zurück:
"nur gif und jpeg Dateien dürfen hochgeladen werden."

Also irgendwas muss da Falsch sein.. :-(

kann mir einer helfen?
 
Das mir klar :)
Doch funktioniert ja auch net.
Wenn ich es nur mit einer "upload" funktion mache gehts ja.
Nur nicht, wenn es zwei oder mehr sein. :(
 
PHP:
if($type != "image/gif" && $type != "image/pjpeg") { 
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
}

hm, also wenn das bild ein kein gif bild UND (!) kein ein jpg is, dann kommt die fehlermeldung?

besser wäre es wohl:

PHP:
if($type != "image/gif" || $type != "image/pjpeg") { 
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
}
 
ne das kommt nur dann, wenn ich mehr als ein File Uploaden will.
Hab doch oben die Grafik gepostet, da sind doch vier dieser "upload" felder.
Wenn ich nun die unteren drei wegnehme klappt alles prima.
Sobald ich die anderen drei noch dazu setzte gehts nicht mehr.
 
Original geschrieben von Friesi
ne das kommt nur dann, wenn ich mehr als ein File Uploaden will.

ach ja, und wo steht das?

PHP:
$type = $_FILES['file1']['type']; 
if($type != "image/gif" && $type != "image/pjpeg") { 
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
}

also, da würde immer die fehlermeldung kommen.

versuch mal so:

PHP:
for($u = 1; $u < 4; $u++) {

     $name[$u][1] = date("j.n.Y-H.i.s");
     $tempname[$u] = $_FILES['file'.$u.']['tmp_name']; 
     $name[$u][2] = $_FILES['file'.$u.']['name']; 
     $type[$u] = $_FILES['file'.$u.']['type']; 
     $size[$u] = $_FILES['file1']['size']; 
     $filename[$u] = implode("_",$name);
     if($type[$u] != "image/gif" OR $type[$u] != "image/pjpeg") { 
          $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
     } 
     if($size[$u] > "204800") { 
          $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 200 KB!"; 
     } 
     if(empty($err)) { 
          copy("$tempname'.$u.", "$filename".$u."); 
          echo "Die Datei $filename[$u] wurde erfolgreich hochgeladen!"; 
     } else { 
          foreach($err as $error) 
          echo "$error<br>"; 
     }
}

code is ungetestet!
 
Zurück