Klaus: Doppelte Dateiuploads

Beitrag lesen

Guten Morgen!

Du lädst alle Dateien doppelt hoch:

Ok, das stimmt(e). Das war noch ein Rest von vorangegangenen Problemen die Daten per Post zu übermitteln.
Aber auch wenn ich jetzt nicht mehr doppelt hochlade

  
	var formdaten = new FormData();  
	var fileList = document.getElementById("fileupload").files;  
	for(var i =0; i < fileList.length; i++) {  
		var file = fileList[i];  
	    formdaten.append("datei"+i, file);  
	}  

Das PHP-Script prüft, ob das Verzeichnis und die Berechtigung noch vorhanden ist.

$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`{:.language-php} 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".  
  
Leider ist damit nicht klar, warum der Code nur bei großen Dateien nicht funktioniert.  
Ok, ich hatte bei bspw. einer ausgewählten großen Datei, die Datei quasi doppelt hochgeladen,  
also einmal in "fileupload" und nochmal in "datei", aber es hätte mir ja auch gereicht, wenn er die Datei wenigstens einmal hochgeladen hätte und es erklärt nicht, warum es nur bei großen Dateien größer 1GB nicht funktioniert.  
  
Klaus