Neuigkeiten:

still alive...

Hauptmenü

Problem mit Upload-Skript

Begonnen von apollo009, 16. August 2006, 17:39:46

Vorheriges Thema - Nächstes Thema

apollo009

Hallo liebe Forenmitglieder,
ich versuche gerade für ein Projekt ein Upload-Skript mit multipler Upload-Fuktion zu erstellen. Doch in der Logik und/oder im Syntax sind wohl einige Fehler drin, die mich einfach nicht weiter kommen lassen.
Gedacht ist die Funktion wie folgt:
upload.php
---------------------------------------------------------------------------------------------------
1. Der User wählt die Anzahl gewünschter Uploads per DropDown-Liste
2. Nach Knopfdruck schmeisst das Skript die entspr. Anzahl an Formular-Feldern raus
3. Alle Felder werden vor der Übergabe an upload_file.php durch JS auf Vollständigkeit überprüft
4. Sind alle Felder belegt bzw. mit Eintrag versehen, werden die Werte an upload_file.php übergeben
upload_file.php
--------------------------------------------------------------------------------------------------
1. Nun wird in einer Schleife einzeln jeder Upload auf den richtigen Mime-Type überprüft. (in diesem Fall .swf oder .jpg)
2. Sollte der Mime-type nicht stimmen, ist die Idee den Namen (realname) der Datei in einen Array zu schreiben und später die Dateinamen in der Fehlermeldung auszugeben.
3. Ist der Typ richtig, wird im nächsten Schleifendurchgang auf richtige Größe der Datei geprüft. Ist die Datei zu groß, soll sie auch in den Fehlerarray geschrieben werden.
4. Nur wenn beide Prüfungen erfolgreich durchlaufen wurden, wird die Datei in den Zielordner verschoben und der Name in einen Array geschrieben um später (Ausbau-Phase 2) einen DB-Eintrag zu generieren.
5. Nach Durchlauf der Prüf-Schleife werden beide Array per Session-Variable an upload.php übergeben, um dort als Fehler- bzw. Erfolgsmeldung ausgegeben zu werden und anhand der Anzahl fehlerhafter Uploads neue Formularfelder zu generieren.
Soweit zur Theorie! /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Folgender Fehler passieren:
Es werden zwar immer alle richtigen Dateien in den Zielordner übertragen, aber die Ausgabe zur Information des Users stimmt nicht.
Das Problem fängt an, wenn man richtige Dateien (richtiger Dateityp und Größe) mit falschen Dateien uploadet.
Meist fehlen bei der Fehlerausgabe Dateinamen (in nachfolgender Ausgabe wurde versucht 4 Files zu uploaden :
gespeicherte Files: images/italien_052006_0598_amalfi.jpg
gespeicherte Files: images/italien_052006_1121_positan.jpg
nichtgespeicherte Files:
nichtgespeicherte Files: (un)Heiland.jpg
Hier nun die Skripte zur Ansicht:
 
upload.php
-----------------------------------------------------------------
 


 
 

\";
echo\"Ich möchte \";
for($i=1; $i$i\";}
for($i=20; $i$i\";}
echo\" Datei(en) hochladen.\";
echo\"\";   
echo\"\";
echo\"\";
echo\"\";
echo\"\";
echo\"\";
for($i=1; $iDatei auswählen:\";
}
if(!empty($_POST[\\\\\\\'uploadcount\\\\\\\'])) // Erst denn Upload-Button zeigen wenn eine Upload-Anzahl gewählt wurde
{
echo\" \";
echo\"\";
echo\"\";
echo\"\";
}
}
else
{   
// ********************** -- Fehler- und Erfolgs-Ausgabe -- ***************************
echo\"\";
echo $_SESSION[\\\\\\\'save\\\\\\\'].\"
\";
echo \"Folgende Dateien wurden gespeichert:
\";
for($i=0; $i
\";
// **********************************************************************
echo\"\";
echo\"\";
echo\"\";
echo\"\";
for($i=0; $iDatei auswählen:\";
}
echo\" \";
echo\"\";
echo\"\";
echo\"\";
}
?>
 

 
 
upload_file.php
-------------------------------------------------------------------------------------------------------------


 $max_filesize)
   {
      $nonsaved_files[$i]=$_FILES[\\\\\\\'userfile\\\\\\\'][\\\\\\\'name\\\\\\\'][$i];
      $i++;
   }
   else
   {
      // Files in richtigen Ordner verschieben
      $success[$i]=move_uploaded_file($_FILES[\\\\\\\'userfile\\\\\\\'][\\\\\\\'tmp_name\\\\\\\'][$i], $location.$_FILES[\\\\\\\'userfile\\\\\\\'][\\\\\\\'name\\\\\\\'][$i]);
      $saved_files[$i]=$location.$_FILES[\\\\\\\'userfile\\\\\\\'][\\\\\\\'name\\\\\\\'][$i];
      $_SESSION[\\\\\\\'saved\\\\\\\']=$saved_files[$i];
      if($success[$i])
      {
         //$saved_files[$i]=$location.$_FILES[\\\\\\\'userfile\\\\\\\'][\\\\\\\'name\\\\\\\'][$i];
         //$abfrage = \"insert into pages values (\\\\\\\'\\\\\\\',\\\\\\\'$saved_files[$i]\\\\\\\')\";
         //mysql_db_query($db, $abfrage, $con);
      }
      $i++;
   }
}
}
for($i=0; $i

 
 
Ich hoffe es kann mir jemand helfen, weil ich langsam verzweifle. /uploads/emoticons/icon_e_sad.gif.cc8ba2b6b966c5e020020efa47702aab.gif\" alt=\":(\" />
Gruß aus Hannover,
Alex

all your base are belong to us / Discord