我试图有一个图片上传器但是当我点击浏览并选择图片然后提交我的表格时,HttpPostedFileBase为空。我的实施是否遗漏了?请帮忙。
查看
<form action="Home/UploadImage" method="POST">
<p>
<input type="file" accept="image/x-png, image/gif, image/jpeg" name="projectBgImage" id="projectBgImage"/>
</p>
<input type="submit" value="submit"/>
</form>
家庭控制器
public ActionResult UploadImage(HttpPostedFileBase projectBgImage)
{
return View();
}
调试图片
答案 0 :(得分:7)
添加enctype attribute
您的form
元素
<form action="Home/UploadImage" method="POST" enctype="multipart/form-data">
我建议你像这样使用BeginForm
html-helper:
@using (Html.BeginForm("UploadImage", "Home", FormMethod.Post, new { id = "form", enctype="multipart/form-data" }))
{
<p>
<input type="file" accept="image/x-png, image/gif, image/jpeg" name="projectBgImage" id="projectBgImage"/>
</p>
<input type="submit" value="submit"/>
}
带有[HttpPost]
注释的和操作方法
[HttpPost]
public ActionResult UploadImage(HttpPostedFileBase projectBgImage)
{
return View();
}
额外信息:Phil Haack的一篇不错的博文Asp.net MVC Upload
答案 1 :(得分:2)
在视图中,enctype
属性需要设置为multipart/form-data
using (Html.BeginForm("ImageUp", "YourUpController", FormMethod.Post, new { enctype = "multipart/form-data" }))
其次,
在您的操作方法之上,请确保您拥有HTTPPOST
属性。
[HttpPost]
public ActionResult SaveFile(HttpPostedFileBase projectBgImage)