在我的表单中有多个文件上传,使用 FormData
只有一个文件正在上传,虽然我选择了多个文件上传,代码如下
HTML
<form name="uploadImages" method="post" enctype="multipart/form-data">
<input type="file" name="photo[]" value="">
<input type="file" name="photo[]" value="">
<input type="file" name="photo[]" value="">
</form>
JS
var ajaxData = new FormData();
ajaxData.append( 'action','uploadImages');
jQuery.each($("input[name^='photo']")[0].files, function(i, file) {
ajaxData.append('photo['+i+']', file);
});
$.ajax({
url: URL,
data: ajaxData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
dataType:'json',
success: function(data) {
if (data.status == 'success') {
location.reload();
}
}
});
我在服务器上使用 PHP
,使用 HTML 属性名称
即 photo
只有我能够保存文件,动态文件名对我不起作用。
最佳答案
你在 javascript 中有一个错误:你只是在一个输入中迭代文件,请看一下这个
var ajaxData = new FormData();
ajaxData.append( 'action','uploadImages');
$.each($("input[type=file]"), function(i, obj) {
$.each(obj.files,function(j, file){
ajaxData.append('photo['+j+']', file);
})
});
关于 jsfiddle 的示例
关于javascript - JS :How to send multiple files using FormData(jQuery Ajax),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16496407/