首页 文章

MVC3动作文件大小限制

提问于
浏览
25

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

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

@ 为了使用MVC操作作为AJAX呼叫的处理程序,请使用下面的表单声明 . (一点评论)由于使用MVC控制器处理请求时无法控制,因此无法控制后续请求的最大消息长度使用上传大文件的功能无用,除非您获得安全并且允许大量的消息传送大小站点范围 . 更好的方法是使用HTTP处理程序来处理上传请求,直到MVC框架提供基于每个操作基础设置maxMessageLength的方法 @

这仍然是这样吗?

我发现我可以在web.config中设置 <httpRuntime maxRequestLength="x" /> ,但我的理解是这是一个安全漏洞 . 情况也是这样吗?

我宁愿在控制器中处理我的上传,而不是使用HttpHandler,但不希望受到文件大小的限制,如果我不需要,也不想引入任何安全漏洞 .

Update:

根据这篇文章File Upload ASP.NET MVC 3.0,默认文件大小限制为4mb . 我已经确认了这个限制http://msdn.microsoft.com/en-us/library/e1f13641.aspx并了解漏洞 .

Is this the only way to upload a file thru a controller action beyond 4mb?

1 回答

  • 50

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

    <configuration>
        <location path="Home/UploadFiles">
            <system.web>
                <httpRuntime maxRequestLength="40960"/>
            </system.web>
        </location>
    </configuration>
    

    Home是控制器名称,UploadFiles是操作名称 . 此处的大小限制为40MB .

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

相关问题