Hakuna matata!
Du lädst alle Dateien doppelt hoch:
var formdaten = new FormData(document.upload);
var fileList = document.getElementById("fileupload").files;
for(var i =0; i < fileList.length; i++) {
var file = fileList[i];
formdaten.append("datei"+i, file);
}
Durch den Konstruktor FormData() werden schon Einträge für alle Dateien erzeugt. Durch die append()-Methode erzeugst du für jede Datei einen weiteren Eintrag.
> Das PHP-Script prüft, ob das Verzeichnis und die Berechtigung noch vorhanden ist.
>
> ~~~php
> $anz_uploads = sizeof($_FILES) -1;
>
> if (file_exists("/upload/files/") && is_writable("/upload/files/")) {
> for ($i = 0; $i < $anz_uploads; $i++) {
> $xdatei = "datei".$i;
> $name = basename($_FILES[$xdatei]['name']);
> $dateiname = "/upload/files/".$name;
> $tmpname = $_FILES[$xdatei]['tmp_name'];
> $erfolg = move_uploaded_file($tmpname, $dateiname);
> if (!$erfolg) {
> echo "Warning! Datei wurde nicht korrekt hochgeladen!";
> }
> }
>
Damit ist auch klar, warum dieser PHP-Code nicht funktioniert. Nur die Hälfte der hochgeladenen Dateien hat Namen die der Form "datei".$i
entsprechen. Nämlich nur solche, die du mit der append()-Methode so angehangen hast. Die erste Hälfte der Dateien hat Namen, die dem Formular-Element entsprechen, also "fileupload".
--
“All right, then, I'll go to hell.” – Huck Finn
“All right, then, I'll go to hell.” – Huck Finn