我正在使用 $.ajax 方法和 xhr2 使用 $.ajax 方法上传文件。
当我将任何标准对象分配给 $.ajax 参数数据时,$_POST (php) 中会返回一个正确的非空数组。
JS:
data : {name:"john doe"}
PHP: 打印_r($_POST)
Array
(
[name] => john doe
)
但是,当我将 formData 对象分配给参数数据以上传文件时,$_FILES (php) 中会返回一个空数组
JS:
data : new FormData(document.getElementById('fileupload'))
PHP: 打印_r($_FILES)
Array
(
)
我的html代码是:
<form enctype="multipart/form-data">
<div id="myform">
<input type="file" name="fileupload" id="fileupload" />
<div id="submit">UPLOAD</div>
</div>
</form>
我的 jQuery 代码是:
$('#submit').click(function(){
var formData = new FormData(document.getElementById('fileupload'));
$.ajax({
url : "upload.php",
type: "POST",
data : formData,
xhr: function(){
myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function(data, textStatus, jqXHR){
console.log(data);
},
cache: false,
contentType : false,
processData: false
});
});
你会碰巧知道我的代码有什么问题吗?我无法弄清楚为什么文件没有被上传。谢谢你的帮助。