我正在实现一个基于 jquery 的文件上传插件http://blueimp.github.com/jQuery-File-Upload/。有一个示例 MVC3 应用程序,您可以下载https://github.com/maxpavlov/jQuery-File-Upload.MVC3。
样本作者在首页视图中有评论:
@*为了将 MVC 操作用作 AJAX 调用的处理程序,请使用下面的表单声明。(注释掉的那个)不建议使用,因为当使用 MVC 控制器处理请求时,无法控制 POST 请求的 maxMessageLength,这会使上传大文件的功能毫无用处,除非您牺牲安全性并允许较大的 POST 消息大小站点范围。
最好使用 HTTP 处理程序来处理上传请求,直到 MVC 框架提供在每个操作基础上设置 maxMessageLength 的方法 *@
现在还是这样吗?
我发现我可以<httpRuntime maxRequestLength="x" />
在 web.config 中设置,但我的理解是这是一个安全漏洞。是不是也这样?
我宁愿在控制器中处理我的上传,而不是使用 HttpHandler,但不想受到文件大小的限制,也不想引入任何安全漏洞,如果我不需要的话。
更新:
根据这篇文章文件上传 ASP.NET MVC 3.0,默认文件大小限制为 4mb。我已确认此限制http://msdn.microsoft.com/en-us/library/e1f13641.aspx并了解该漏洞。
这是通过超过 4mb 的控制器操作上传文件的唯一方法吗?