要求上傳附件大小限制在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.
這樣大文件的上傳就解決了