我正在尝试从MVC 4中的表单上传两个图像。我看到了这个article,它的工作方式很好,就像Haaked做的那样,但当我试图通过{{1}做同样的事情时它不起作用
我有来自控制器的Action方法,适用于两种情况:
@using(Html.BeginForm())
问题来自于观点。以下是来自Haaked网站的代码,该视图适用于:
[HttpPost]
public ActionResult Photo(IEnumerable<HttpPostedFileBase> files)
{
foreach (var file in files)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Content/Photos/"), fileName);
file.SaveAs(path);
}
}
return RedirectToAction("Photo");
}
这是我的代码,不行。
<form action="" 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" />
</form>
我做错了什么?
答案 0 :(得分:1)
您需要在 Html.BeginForm 的方法重载中指定 enctype 才能上传文件。
@using (Html.BeginForm("YourAction", "YourController", FormMethod.Post,
new { 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" />
}