【发布时间】:2014-01-03 10:06:14
【问题描述】:
我正在尝试上传多个文件,(单击选择多个文件并上传)。为此,我使用以下代码。我在 MVC4 中这样做
@using (Html.BeginForm("Gallery", "Admin", FormMethod.Post, new {enctype="multipart/form-data", id = "GalleryForm" }))
{
@Html.ValidationSummary();
<div> Select the files to Upload<br /> <input type="file" name="file" id="file" multiple="multiple" /><br /><br /></div>
<div><input type="submit" name="submit" Value="Save"/></div>
}
控制器
[HttpPost]
public ActionResult Gallery(IEnumerable<HttpPostedFileBase> files)
{
foreach (var file in files)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/Gallery/"), fileName);
file.SaveAs(path);
}
}
return RedirectToAction("Index");
}
如果我选择了多个文件,我收到错误“超出最大请求长度”,当我选择单个文件并尝试上传时,我收到错误"Object reference not set to an instance of an object"。实际上,我想使用相同的表单上传单个和多个文件。这怎么可能。请帮我。提前致谢。
【问题讨论】:
-
需要更多信息:显示的代码的哪一行给出了错误?可能是 foreach.. 文件为空,因为参数名称不匹配。另请参阅此问题:stackoverflow.com/questions/8356506/… 和 stackoverflow.com/questions/4232347/…
-
@DaviddCeFreitas:我想使用“单输入控件”上传多个文件
标签: c# file asp.net-mvc-4