Wolfram Hüttermann: multiple fileupload php - extensions unterscheiden

Beitrag lesen

habe vor ein paar wochen schon mal geschieben und konnte etwas auf die beine stellen. leider läuft mein multiple file upload noch nicht sauber. hier der code soweit:

Fileupload start

for ($i=0;$i<4;$i++) //4 files sollen hoch
{

if (is_uploaded_file($HTTP_POST_FILES['PIC']['tmp_name'][$i]))
   {
      //extension herausfinden
      $extention = substr(strrchr($files[$i], "."), 1);

switch($extention) {
case NULL :
       {
      $message = "extension nicht erkannt";
      break;
       }

case "jpg":
        { if (file_exists($uploadpath."images/".$files[$i]))
   {
   $files[$i]=$zeit."_".$HTTP_POST_FILES['PIC']['name'][$i];
          move_uploaded_file($HTTP_POST_FILES['PIC']['tmp_name'][$i], $uploadpath."images/".$files[$i]);

$message="erfolgreich geupped";
        }
break;}

case "mov":
                 {
     if (file_exists($uploadpath."images/".$files[$i]))
   {

$files[$i]=$zeit."_".$HTTP_POST_FILES['PIC']['name'][$i];
  $files[$i] = strtolower($files[$i]);
  move_uploaded_file($HTTP_POST_FILES['PIC']['tmp_name'][$i], $uploadpath."images/".$files[$i]);
break;}
}
}

Fileupload ende

mein problem: die extension wird ausgelesen ist aber immer die extension vom upload-vorgang davor.

kann das an meinem sessions liegen?

//-----------------Session Management--------------------------
session_start();
// Wenn der Datei eine Session ID übergeben wurde, dann diese reaktivieren
if (isset ($HTTP_GET_VARS[session_name()])) session_id( ${session_name()} );

freue mich über hilfe. schönen tag wünscht janosch

Hallo janosch,

Das ist so nicht richtig.

Angenommen du hättest ein Formular der folgenden Art.

<form enctype="multishit"> <!-- Nicht gerade sehr
höflich, aber ich hasse Tipparbeit -->
<input type="file" name="pic1" />
<br>
<input type="file" name="pic2" />
<input type="file" name="pic3" />
<input type="file" name="pic4" />

</form>

Wenn du diese Dateien hochladen möchtest, dann musst du folgendes Skript schreiben.

foreach (array("pic1", "pic2", "pic3", "pic4") as $name)
{
     $dateiname=irgendeineProzedur($name);
     move_uploaded_file($_FILES[$name]["tmp_name"],
                           $dateiname) or
     die("Das File konnte nicht aufgeladen werden! Fehler!");

}