gpt4 book ai didi

php - 将输入文件放入 FormData jquery 以提交给 PHP

转载 作者:可可西里 更新时间:2023-11-01 13:22:56 27 4
gpt4 key购买 nike

我知道这个问题已经有问题了,但我还是做不好。需要一些帮助。

我需要上传一个包含附加数据的文件。

我的 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"] 以便我可以开始处理上传的文件?

最佳答案

更新:我终于解决了这个问题

var ft=$('#foto_path_upload')[0].files[0];
oMyForm.append("foto_path_upload", ft);

这是我从日志中得到的:

09/07/2013 04:26:53 pm :: files -> Array
(
[foto_path_upload] => Array
(
[name] => noimages.jpg
[type] => image/jpeg
[tmp_name] => D:\xampp\tmp\php4E90.tmp
[error] => 0
[size] => 3642
)

)

问题解决了。谢谢大家

关于php - 将输入文件放入 FormData jquery 以提交给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17543064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com