【问题标题】:Cannot Upload Image (HttpPostedFileBase is Null)无法上传图片(HttpPostedFileBase 为空)
【发布时间】:2013-03-02 12:20:38
【问题描述】:

我尝试使用图像上传器,但是当我单击浏览并选择图像然后提交我的表单时,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();
    }

调试图像

【问题讨论】:

标签: c# asp.net-mvc-3 image file-upload


【解决方案1】:

添加 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]注解的Action Method

[HttpPost]
public ActionResult UploadImage(HttpPostedFileBase projectBgImage)
{
    return View();
}

额外信息:Phil Haack Asp.net MVC Upload 的一篇不错的博文

【讨论】:

  • 非常感谢它现在正在工作!感谢您提出更好的实施方案,这很有帮助。
【解决方案2】:

在视图中需要将enctype 属性设置为multipart/form-data

using (Html.BeginForm("ImageUp", "YourUpController", FormMethod.Post, new { enctype = "multipart/form-data" }))

第二, 在您的操作方法之上,确保您具有 HTTPPOST 属性。

[HttpPost]
public ActionResult SaveFile(HttpPostedFileBase projectBgImage)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多