[英]Upload multiple files at once using ajax
检查下面的代码。 在这里,我试图一次上传多个选定的文件,但问题是 ajax 没有发送所有选定的文件。 它只是从选定的文件中发送第一个文件。 我在这里做错了什么?
c# class:
public class AddAssets
{
public List<HttpPostedFileBase> my_file { get; set; }
}
mvc5方法:
[HttpPost]
public JsonResult mymethod(AddAssets data)
{
}
Html:
<div class="modal-body">
<input type="file" name="my_file[]" class="theFiles" id="files" multiple>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="Upload">Upload</button>
</div>
Jquery:
$('#Upload').click(function () {
var form_data = new FormData();
$.each($(".theFiles"), function (i, obj) {
$.each(obj.files, function (j, file) {
form_data.append('my_file[' + i + ']', file);
});
});
$.ajax({
url: '/controller/mymethod',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function (data) {
console.log(data);
},
error: function (error) {
console.log(error);
}
});
});
从 $ dataType: 'text',
$.ajax({
.
当您附加文件时,您使用form_data.append('my_file[' + i+ ']', file);
. 对于文件名,您使用的是'my_file[' + i+ ']'
这对于所有文件都是相同的。 这似乎是问题的原因。
使用另一个variable
来设置文件名,如下所示的index
。
var form_data = new FormData();
var index = 0;
$.each($(".theFiles"), function (i, obj) {
$.each(obj.files, function (j, file) {
form_data.append('my_file[' + index + ']', file);
index++;
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.