【发布时间】:2013-07-06 18:07:14
【问题描述】:
我知道已经对这个问题提出了疑问,但我仍然无法正确解决。需要一些帮助。
我需要上传一个带有附加数据的文件。
我的 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);
}
当我将其发送到 upload-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"] 以便我可以开始处理上传的文件?
【问题讨论】:
-
检查这个问题 [Upload File With Ajax XmlHttpRequest][1] [1]: stackoverflow.com/questions/6211145/…
-
我在
$_POST中仍然有[object HTMLImageElement]如何将其更改为文件? -
请注意,
formData()在 IE
标签: php javascript jquery http-post