MVC3 动作文件大小限制
Posted
技术标签:
【中文标题】MVC3 动作文件大小限制【英文标题】:MVC3 Action File Size Limit 【发布时间】:2012-06-05 06:03:58 【问题描述】:我正在实现一个基于 jquery 的文件上传插件http://blueimp.github.com/jQuery-File-Upload/。您可以下载一个示例 MVC3 应用程序https://github.com/maxpavlov/jQuery-File-Upload.MVC3。
示例作者在主页视图中有评论:
@*为了将 MVC 操作用作 AJAX 调用的处理程序,请使用下面的表单声明。 (注释掉的那个) 不建议使用 MVC 控制器处理请求时无法控制 POST 请求的 maxMessageLength 这使上传大文件的功能毫无用处,除非您牺牲安全性并允许大文件 在全站范围内发布消息大小。
最好使用 HTTP 处理程序来处理上传请求,直到 MVC 框架提供设置 maxMessageLength 的方法 每个行动的基础 *@
现在还是这样吗?
我发现我可以在 web.config 中设置<httpRuntime maxRequestLength="x" />
,但我的理解是这是一个安全漏洞。也是这样吗?
我更愿意在控制器中处理我的上传,而不是使用 HttpHandler,但我不想受到文件大小的限制,也不想引入任何安全漏洞,如果我不需要的话。
更新:
根据这篇文章File Upload ASP.NET MVC 3.0,默认文件大小限制为 4mb。我已确认此限制http://msdn.microsoft.com/en-us/library/e1f13641.aspx 并了解该漏洞。
这是通过控制器操作上传超过 4mb 的文件的唯一方法吗?
【问题讨论】:
【参考方案1】:您可以在 web.config 中使用location 元素为具体的控制器操作设置上传大小限制:
<configuration>
<location path="Home/UploadFiles">
<system.web>
<httpRuntime maxRequestLength="40960"/>
</system.web>
</location>
</configuration>
Home 是控制器名称,UploadFiles 是动作名称。此处的大小限制为 40MB。
不过,如果你问我,使用 Http Handler 处理文件上传并不是一个糟糕的解决方案。
【讨论】:
正是我想要的。谢谢! “位置”xml 节点必须是...“配置”的子节点? (在 web.config 中)。能具体说明一下吗? @sports 是的,它是以上是关于MVC3 动作文件大小限制的主要内容,如果未能解决你的问题,请参考以下文章