我正在尝试上传多个文件并在视图中遍历它们。但不是上传 X 个文件,而是多次上传第一个文件 X 次(例如,如果我上传了 3 个文件,则上传 3 次)。在目标文件夹中,仅保存一个文件。
它似乎可以识别存在的文件数量,那么为什么不遍历它们呢?
我应该提一下,我对 asp.net/c# 很陌生(更习惯于经典/vb),所以如果我遗漏了一些明显的东西,我深表歉意......
代码:
public class ViewDataUploadFilesResult
{
public string Name { get; set; }
public int Length { get; set; }
}
public ActionResult UploadMultipleFiles()
{
var r = new List<ViewDataUploadFilesResult>();
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file];//as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string basepath = Server.MapPath("/Images");
string savedFileName = Path.Combine(basepath, Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
r.Add(new ViewDataUploadFilesResult()
{
Name = savedFileName,
Length = hpf.ContentLength
});
}
return View(r);
}
示例结果:
<li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
<li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
<li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
我一直在研究 Scott Hanselman 的帖子:http ://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx