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