如何使用jQuery和xhr2进行文件上传(返回空$ _FILES)

我使用$ .ajax方法和xhr2使用$ .ajax方法上传文件。

当我将任何标准对象分配给$ .ajax参数数据时,$ _POST(php)中返回一个正确的非空数组。

JS:

data : {name:"john doe"} 

PHP:print_r($ _ POST)

 Array ( [name] => john doe ) 

但是,当我将formData对象分配给参数数据以便上传文件时,$ _FILES(php)中返回一个空数组

JS:

 data : new FormData(document.getElementById('fileupload')) 

PHP:print_r($ _ FILES)

 Array ( ) 

我的HTML代码是:

 
UPLOAD

我的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 }); }); 

你碰巧知道我的代码有什么问题吗? 我无法弄清楚为什么文件没有被上传。 谢谢你的帮助。

 var element = document.getElementById("fileupload"); var myfiles= element.files; var data = new FormData(); var i=0; for (i = 0; i < myfiles.length; i++) { data.append('file' + i, myfiles[i]); } $.ajax({ url: 'load.php', type: 'POST', contentType: false, data: data, processData: false, cache: false }).done(function(msg) { //do something }); 

源代码: http //sw.solfin.net.co/index.php/programacion/php-y-jquery