【问题标题】:HttpPostedFileBase returns Null MVC3HttpPostedFileBase 返回 Null MVC3
【发布时间】:2013-08-12 08:50:12
【问题描述】:

我正在使用 MVC4 用 C# 开发一个项目。 这是我的问题:

我正在尝试将 byte[] 转换为 HttpPostedFileBase,但它总是返回 Null(即使 byte[] 包含数据)。这是我的代码:

public override bool IsValid(object value)        {               
HttpPostedFileBase file = value as HttpPostedFileBase
}

该代码是我的 IsValid 函数的一部分,我在其中验证上传的图像是否有效(小于 1MB,只有“jpg”或“png”等)。 提前致谢。

【问题讨论】:

  • 请在控制器中添加操作代码或添加有关您的问题的更多详细信息

标签: c# asp.net-mvc


【解决方案1】:
<form enctype="multipart/form-data" method="post">
<div> bla bla
</div>
</form>
?

编辑:method="post"

+

[HttpPost]

请发布您的控制器代码,否则请在上面尝试

【讨论】:

    【解决方案2】:

    使用 Html 辅助类,您可以编写如下

    @using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="LogoFileUp" id="LogoFileUp"></span>
    }
    

    在 Create Post Action 中,您可以获得以下值:

    [HttpPost]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create( HttpPostedFileBase LogoFileUp)
    {
       // bla bla ...
    }
    

    【讨论】:

      【解决方案3】:

      除了 Elvin 的回答之外,您还可以使用一个模型,您可以在其中添加包含您想要允许的扩展的数据注释:http://msdn.microsoft.com/en-us/library/ee256141%28VS.100%29.aspx

      模型:CompanyModel.cs

      public class CompanyModel
      {
          [Display(Name = "Logo")]
          [File(AllowedFileExtensions = new string[] { ".jpg", ".gif", ".tiff", ".png" }, MaxContentLength = 1024 * 1024 * 30, ErrorMessage = "Invalid File")]
          public HttpPostedFileBase LogoFileUp{ get; set; }
      
          //you can add other properties if you like, for example companyname
      }
      

      观点

      @model CompanyModel
      @using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
      {
          @Html.ValidationMessageFor(model => model.LogoFileUp)
          @Html.LabelFor(model => model.LogoFileUp)
          @Html.TextBoxFor(model => model.LogoFileUp, new { type = "file" })
      }
      

      行动

      [HttpPost]
      public ActionResult Create(CompanyModel company)
      {
      
          if (ModelState.IsValid)
          {
              //save company ...
          }else{
              return View(company)
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-09-24
        • 2019-09-17
        • 1970-01-01
        • 2014-06-29
        • 2016-04-08
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多