我知道已經有這個問題的問題,但我仍然無法做到這一點。需要一些幫助。把輸入文件放入FormData jQuery提交到PHP
我需要上傳帶有附加數據的文件。
我input.php:
<input type="file" id="foto_path" name="foto_path" />
<input type="button" value="Add" onclick="javascript:sendForm()" />
我發送使用javascript:
function sendForm() {
var fileInput = document.querySelector('#foto_path');
var oMyForm = new FormData();
var nip=123223374;//it will be generated by php, for temporary i just hardcode it
oMyForm.append("foto_path", fileInput);
oMyForm.append("nip",nip);
var oReq = new XMLHttpRequest();
oReq.open("POST", "upload-file.php", true);
oReq.onload = function(oEvent) {
if (oReq.status == 200) {
//oOutput.innerHTML = "Uploaded!";
alert('success');
} else {
//oOutput.innerHTML = "Error " + oReq.status + " occurred uploading your file.<br \/>";
alert('failed');
}
};
oReq.send(oMyForm);
}
當我發送上傳-file.php:
logapp("post -> ".print_r($_POST,true));//logapp is just function to log to file
logapp("files -> ".print_r($_FILES,true));
我得到這個從日誌:
09/07/2013 02:47:06 pm :: post -> Array
(
[foto_path] => [object HTMLImageElement]
[nip] => 123223374
)
09/07/2013 02:47:06 pm :: files -> Array
(
)
我得到了成功警報,但我需要得到文件foto_path
爲$_FILES
不$_POST
。 我的問題是爲什麼輸入文件檢測爲$_POST["foto_path"]
而不是$_FILES["foto_path"]
。如何將其更改爲$_FILES["foto_path"]
,以便我可以開始處理上傳的文件?
檢查這個問題[上傳文件使用Ajax的XmlHttpRequest] [1] [1]:http://stackoverflow.com/questions/6211145/upload-file-with-ajax-xmlhttprequest – maketest
我仍然在'$ _POST'中有'[object HTMLImageElement]'如何將其更改爲文件? –
請注意,IE <= 9不支持'formData()'。但是,現在看起來不是這樣。 –