1

如果我禁用客户端验证

<add key="ClientValidationEnabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />

并尝试上传一个大约 11 MB 的文件,该文件将文件设置为 HttpPostedFileBase 成员

    [ValidateFile]
    public HttpPostedFileBase StudentImageFileBase { get; set; }

我什至无法让我的自定义验证代码被调用。一旦我点击提交按钮,我就会看到此错误消息。我可以让客户端工作,但如果它在用户浏览器中被禁用怎么办?我是否坚持向用户显示此消息?有什么不对劲,我不应该能够上传大文件吗?我不想在我的应用程序中尝试,但我必须在服务器端与它作斗争,对吗?

在此处输入图像描述

4

1 回答 1

2

再看这里。将适当的代码添加到您的 web.config(例如 1GB):

 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

现在它应该允许上传最大 1GB 的文件,您可以在服务器端检查大小:

public ActionResult Foo(HttpPostedFileBase file)
{
  ....
  if(file.ContentLength > 536870912) //512MB
     ....
  ....
}
于 2015-02-23T08:15:06.533 回答