我正在通过AJAX / JSON上传mvc中的多个文件,
$(document).ready(function () {
$('#fileupload').fileupload({
dataType: 'json',
url: '/eSignature/FileUpload/UploadFiles',
autoUpload: true,
done: function (e, data) {
$('.file_name').html(data.result.name);
$('.file_type').html(data.result.type);
$('.file_size').html(data.result.size);
}
}).on('fileuploadprogressall', function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('.progress .progress-bar').css('width', progress + '%');
});
});
以下是我的控制器逻辑
public ActionResult UploadFiles()
{
List<UploadFilesResult> model = new List<UploadFilesResult>();
int count = Request.Files.Count;
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Path.Combine(Server.MapPath("~/App_Data"), Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
model.Add(new UploadFilesResult()
{
Name = hpf.FileName,
Length = hpf.ContentLength,
Type = hpf.ContentType
});
}
return View();
}
我的问题是迭代Request.Files;虽然我上传了多个文件,但一次只显示一个文件。
上传第一个文件后;然后再次调用该方法是由它自己完成的;这里显示所有文件的第二个文件名等等?为什么会这样?
因为,我正在for循环中更新我的模型,其中只存储了最后一个值。
我在这里失踪的任何东西?????????????