Klaus: POST-Daten im Ajax nicht korrekt?

Beitrag lesen

Hallo,

ich starte wie folgt den Ajax-Request, in dem ich die Formulardaten manuell erzeuge und an das Ajax-Script übergebe:

  
	var file = document.getElementById("fileupload").files[0];  
	if (!file) {  
		return;  
	}  
	var formData = new FormData();  
	client = new XMLHttpRequest();  
	var prog = document.getElementById("fortschritt");  
	prog.value = 0;  
	prog.max = 100;  
  
    formData.append("datei", file);  
    formData.append("feld1", document.share.feld1.value);  
    formData.append("feld2", document.share.feld2.value);  
  
    client.onerror = function(e) {  
        alert("onError");  
    };  
  
    client.onload = function(e) {  
        document.getElementById("fortschritt_txt").innerHTML = "100%";  
        prog.value = prog.max;  
    };  
  
    client.upload.onprogress = function(e) {  
        var p = Math.round(100 / e.total * e.loaded);  
        document.getElementById("fortschritt").value = p;  
        document.getElementById("fortschritt_txt").innerHTML = p + "%";  
    };  
  
    client.onabort = function(e) {  
        alert("Upload abgebrochen");  
    };  
  
    client.open("POST", "upload.php");  
	client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
	client.setRequestHeader("Content-length", formData.length);  
	client.setRequestHeader("Connection", "close");  
    client.send(formData);  

In der upload.php habe ich im Moment lediglich folgende Zeilen:

  
	echo "--> ".$_POST['datei']." --> ".$_POST['feld1']."<br/>";  
	var_dump($_POST);  

Zurückgegeben wird aber:
--> -->
array(1) { ["-----------------------------135241000314365 Content-Disposition:_form-data;_name"]=> string(316) ""datei"; filename="test.txt" Content-Type: text/plain Test -----------------------------135241000314365 Content-Disposition: form-data; name="feld1" ZZZZ -----------------------------135241000314365 Content-Disposition: form-data; name="feld2" XXXX -----------------------------135241000314365-- " }

Was hab ich falsch gemacht, dass ich nicht auf die $_POST-Daten zugreifen kann?
Ein var_dump($_FILES) gibt ein leeres Array zurück.

Klaus