【发布时间】:2016-12-07 10:13:03
【问题描述】:
这是我的观点
测试上传文件
<form action="@Url.Action("Index", "Home")" method="post" enctype="multipart/form-data">
@Html.AntiForgeryToken()
<label for="file">Filename:</label>
<input type="file" name="files" id="files" />
<input type="submit" name="submit" value="Upload" />
</form>
这是我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(IEnumerable<HttpPostedFileBase> files)
{
if (files != null)
{
foreach (var file in files)
{
try
{
if (file != null && file.ContentLength > 0)
{
var fileName = file.FileName;
var path = Path.Combine(Server.MapPath(@"\Upload"), fileName);
file.SaveAs(path);
ViewBag.Message = "File uploaded successfully";
}
}
catch (Exception ex)
{
ViewBag.Message = "ERROR:" + ex.Message.ToString();
}
}
}
return View();
}
问题是 HttpPostedFileBase 文件始终为空。我找不到问题。
【问题讨论】:
-
更改您的文件输入名称属性。
input file tag name属性和HttpPostedFileBas argument name不应相同 -
stackoverflow.com/questions/8551528/… 上的问题是关于名称输入类型文件。
-
你的意思是这个名字="files"吗? @user55 我已经改名了,但是还是不行。
-
您显示的代码工作正常,参数不会是
null。你有任何 javascript 吗?
标签: c# asp.net-mvc file-upload