我有一个简单的表单,其中一个输入用于单个文件,另一个输入用于多个文件,如何每次按文件和其他表单数据进行ajax调用循环文件?
<form id = "uploadForm" name = "uploadForm" enctype="multipart/form-data">
<label for="uploadFile">Upload Your File</label>
<input type="file" name="uploadFile" id="uploadFile">
<input type="file" name="attachment" id="attachments" multiple />
<input type="text" name="attachmentId" value="1236">
<input type="text" name="attachmentName" >
<input type="text" name="JobId" value="xyz" >
<input type="text" name="fileCategory" value="abc">
现在我正在做整个ajax表单提交如下:
$('#'+formId).ajaxForm({
url:FileUploadUrl,
headers: { "X-Requested-With":"XMLHttpRequest" },
contentType: 'application/json',
dataType:'json',
success : function(data){
},
但我想一次只为一个文件做这件事,请提前帮助谢谢。
答案 0 :(得分:0)
不确定为每个$.ajax()
对象调用File
的目的是什么,尽管您可以使用$.when()
,Function.prototype.apply()
,$.map()
,{{1} } .map()
File
属性input type="file"
FileList
处的每个.files
请求
var n = 0;
var requests = $.when.apply($, $.map($("#uploadForm :file"), function(input) {
return $.when.apply($, [].slice.call(input.files).map(function(file, index) {
return $.ajax({url, data:new FormData("file-" + n++, file)})
})
)
}))
.then(function(results) {
console.log(results)
}, function handleErr(err) {
console.log(err)
})