代码之家  ›  专栏  ›  技术社区  ›  unom

无法将HttpFileCollectionBase转换为HttpFileCollection

  •  2
  • unom  · 技术社区  · 14 年前

    我有部分观点:

    <% using (Html.BeginForm("add", "home", FormMethod.Post, 
       new { enctype = "multipart/form-data" })){%>
       <input name="IncomingFiles" type="file" />
       <div class="editor-field"><%: Html.TextBox("TagsInput") %></div>
       <p><input type="submit" value="Create" /></p><% } %>
    

        [HttpPost]
        public ActionResult add(HttpFileCollection IncomingFiles, string TagsInput)
        {
             return View();
        }
    

    它根本无法将我上传的文件匹配到HttpFileCollection,它们将显示为HttpFileCollectionBase。 如何获得视图来传递HttpFileCollection?

    我需要什么特别的名字吗?

    谢谢您!

    1 回复  |  直到 10 年前
        1
  •  6
  •   Code Silverback    13 年前

    在你的行动方面做一些这样的事情。不能将文件作为参数传递:

    [HttpPost]
    public ActionResult add(string TagsInput) {
      if (Request.Files.Count > 0) {
        // for this example; processing just the first file
             HttpPostedFileBase file = Request.Files[0];
     if (file.ContentLength == 0) {
          // throw an error here if content length is not > 0
          // you'll probably want to do something with file.ContentType and file.FileName
          byte[] fileContent = new byte[file.ContentLength];
          file.InputStream.Read(fileContent, 0, file.ContentLength);
          // fileContent now contains the byte[] of your attachment...
        }  
      }
      return View();
    }