要求上传附件大小限制在2G,原本以为可以轻松搞定。在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误。一直搞不明白,在网上搜索大概了解上传控件分为两种上传模式:
1,将文件一次性读到内存中,然后再写到服务上。这样,如果文件太大就会导致服务响应变慢。
2,国外的上传控件Lion.Web.UpLoadModule,AspnetUpload(我也是通过网上搜索的),是将文件分块读取,读一些,写一些到硬盘上的。
我也未深入研究swfupload这个上传控件是不是第 2 种方法,就是拿过来用。
找了好久终于让我找到一篇文章解决了Http 404 的问题(好东西大家分享)
http://hi.baidu.com/v71000/blog/item/3ff017f7e13f727fdcc4748f.html
用swfupload在IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误。
查了半天,原来是IIS7下的默认设置限制了上传大小。这个时候Web.Config中的大小设置也就失效了。
Web.Config中配置
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="5600" useFullyQualifiedRedirectUrl="true" />
</system.web> <system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="100000000"/>
</requestFiltering>
</security>
</system.webServer>
具体步骤:
1、打开IIS管理器,找到Default Web Site。先进行停止。
2、在IIS中双击“请求筛选”打开。
3、点击右边的“编辑功能设置”,打开“编辑请求筛选设置”对话框。
其中的允许的最大容量长度,默认是”30000000“,30M,将其修改为你所需要的大小即可。
4、启动IIS.
这样大文件的上传就解决了