javascript - 为什么在调用服务器端验证之前 HttpPostedFileBase 会在大文件上出错?

标签 javascript c# asp.net-mvc httppostedfilebase

如果我禁用客户端验证

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

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

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

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

enter image description here

最佳答案

here再次。将适当的代码添加到您的 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
     ....
  ....
}

关于javascript - 为什么在调用服务器端验证之前 HttpPostedFileBase 会在大文件上出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666676/

相关文章:

javascript - Bootstrap 导航栏移动切换不起作用

c# - 如何从 DataContext 的跟踪机制中分离 LINQ-to-SQL 数据对象?

c# - 使用 SharpSSH 从 SFTP 获取文件大小

asp.net-mvc - 如何在不需要模型的情况下将参数发送到局部 View ?

javascript - 在 NodeJS 上跨页面请求维护后端连接?

javascript - 在javascript中我将如何转换 2016-05-21 20 :00:00 to December 31 2016 00:00:50 UTC+0200

javascript - 如何监视使用 WinJs 中的 launchUriAsync 生成的进程

c# - 使用 Google map 作为商店定位器

c# - iTextSharp 添加图像

WebApi 中的 C# await/async,有什么意义?