我正在尝试在ASP.NET MVC中上传多个文件,我的控制器是
public ActionResult GalleryAdd()
{
foreach (string fil in Request.Files)
{
HttpPostedFileBase file = Request.Files[fil];
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/Gallery"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
我的输入字段是
<input type="file" id="files" name="files" multiple>
问题是始终只上传一个文件(第一个文件)。 Foreach循环只接受第一个文件,但Request.Files Count显示上传的文件数。这是什么问题
答案 0 :(得分:2)
更改GalleryAdd操作的签名以获取IEnumerable的HttpPostedFileBase,然后您可以迭代从视图传入的文件:
public ActionResult GalleryAdd(IEnumberable<HttpPostedFileBase> files)
{
foreach (string file in files)
{
//iterate over files
}
}
然后为每个要添加的文件添加文件输入:
<form action="@Url.Action(GalleryAdd)" method="post" enctype="multipart/form-data">
<label for="file1">Filename:</label>
<input type="file" name="files" id="file1" />
<label for="file2">Filename:</label>
<input type="file" name="files" id="file2" />
<input type="submit" />
答案 1 :(得分:0)