gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:08:31 25 4
gpt4 key购买 nike

我正在使用 $.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代码是:

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

你知道我的代码有什么问题吗?我不明白为什么文件没有被上传。感谢您的帮助。

最佳答案

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

关于jquery - 如何使用 jQuery 和 xhr2 进行文件上传(返回空 $_FILES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089247/

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