MVC3动作文件大小限制

Ric*_*ich 26 asp.net-mvc-3

我正在实现一个基于jquery的文件上传插件http://blueimp.github.com/jQuery-File-Upload/.有一个示例MVC3应用程序,您可以下载https://github.com/maxpavlov/jQuery-File-Upload.MVC3.

该示例的作者在主视图中有注释:

@*为了使用MVC操作作为AJAX呼叫的处理程序,请使用下面的表单声明.(一点评论)由于使用MVC控制器处理请求时无法控制,因此无法控制后续请求的最大消息长度使用上传大文件的功能无用,除非您获得安全并且允许大量的消息传送大小站点范围.

更好的方法是使用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的唯一方法吗?

luc*_*ask 52

您可以使用location元素在web.config中为具体控制器操作设置上载大小限制:

<configuration>
    <location path="Home/UploadFiles">
        <system.web>
            <httpRuntime maxRequestLength="40960"/>
        </system.web>
    </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

家庭是控制器的名字和UploadFiles是一个行动的名称.此处的大小限制为40MB.

如果你问我,使用Http Handler处理文件上传仍然不是一个糟糕的解决方案.

  • "location"xml节点必须是......"配置"的子节点?(在web.config中).你能指定吗? (2认同)