【发布时间】:2014-10-31 06:49:43
【问题描述】:
我正在通过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 循环中更新我的模型,其中只存储最后一个值。
我在这里缺少什么?????????
【问题讨论】:
标签: asp.net-mvc jquery-file-upload