【问题标题】:asp.net mvc fileupload ReadTimeout in HttpPostedFileBase inputstreamHttpPostedFileBase 输入流中的 asp.net mvc fileupload ReadTimeout
【发布时间】:2017-05-26 02:52:45
【问题描述】:

我在 asp.net mvc 中有一个接受上传文件的操作。我得到的 HttpPostedFileBase 不为空,甚至 ContentLength 的值也大于 0,但是当我检查“InputSream”时,它有以下错误:

ReadTimeout = '((System.Web.HttpPostedFileWrapper)refile).InputStream.ReadTimeout' 引发了“System.InvalidOperationException”类型的异常

所以当我想如下转换为 readitbytes 时,除了空数组之外什么都没有:

using (var reader = new System.IO.BinaryReader(refile.InputStream))
                    {
                        var a = reader.ReadBytes(model.File.ContentLength);
                    }

所以“a”得到“{byte[0]}”。

有什么问题?

【问题讨论】:

    标签: asp.net-mvc upload inputstream


    【解决方案1】:

    Abp 正在尝试验证 MVC 操作参数,当它尝试读取您的 files 参数的值来验证它时,会发生此异常。

    您可以忽略 HttpPostedFileWrapper 类型进行验证,一切都应该正常工作。

    使用它从中获取字节数组(更多细节在:Convert HttpPostedFileBase to byte[]

    using (var ms = new MemoryStream())
      {
         refile.InputStream.CopyTo(ms);
         byte[] a = ms.ToArray();
    
      }
    

    【讨论】:

      【解决方案2】:

      您的表单中可能缺少enctype。如果有此类问题,请更正您的表格。一个带有文件的 MVC 表单会是这样的

      @using (Html.BeginForm("Add", "Advertisement", FormMethod.Post, new { @class = "form-horizontal", enctype = "multipart/form-data" }))
      {
          //Content
      }
      

      谢谢希望有帮助!

      【讨论】:

        猜你喜欢
        • 2013-01-12
        • 2013-09-20
        • 1970-01-01
        • 1970-01-01
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-22
        相关资源
        最近更新 更多