Hallo Manu3l,
habe ich da irgendeinen Denkfehler?
Nein, sondern eine unvollständige Code-Änderung.
Du hat beim Erweitern von 1 auf N Dateien nicht überall [0] durch [$i] ersetzt.
Weitere Hinweise:
-
$zugelassenedateitypen ist in jedem Schleifendurchlauf gleich. Die Initialisierung dieser Variablen sollte vor der FOR-Schleife erfolgen
-
if ( $_FILES['file']['name'][0] <> '' )
- Wieso greifst Du hier wieder auf das $FILES Array zu? Warum nicht auf $filename? -
dateiname_bereinigen - Leerzeichen und Umlaute sind gültige Zeichen in Dateinamen. Warum entfernen? Gefährlicher sind Zeichen wie
/
,\
oder:
. Aber das mag sein wie es will, denn: -
den vom User gelieferten Filename solltest Du auf KEINEN Fall in dein eigenes Filesystem lassen. Allein schon deshalb nicht, damit der User X nicht Dateien von User Y überschreiben kann. Lege die Datei unter einem selbstvergebenen Namen ab und speichere Dir irgendwo (in einer Datenbank zum Beispiel), dass User X die Datei Y hochgeladen hat, sie vom Mime-Typ foo/bar ist und sie im Upload-Bereich unter dem Namen "mklmtciohremctgk" liegt.
Ich hoffe übrigens, dass Du einen Virenscanner über das Upload-Gut laufen lässt. Wenn Du ZIP-Archive annimmst, kann darin alles mögliche Ungeziefer stecken, und "application/octet-stream" ist noch schlimmer.
Rolf
sumpsi - posui - clusi