蛙蛙推薦:大檔案上傳問題,整理自csdn論壇

來源:互聯網
上載者:User

提出問題:

如果使用asp.net上傳檔案,伺服器是把檔案先存到記憶體,等上傳完畢在存到磁碟。
假如:如果上傳1G的檔案的話,就會出現伺服器記憶體不夠,效能大幅度下降。我的想法是通過一邊上傳一邊儲存到磁碟的方法來解決問題,但遇到這樣的問題:擷取到的資料流是上傳完畢的資料流。

-----
傳大檔案不適合直接在asp.net中用<input type=file>進行

要寫成一個activex控制項, 嵌入在aspx頁面

此控制項完成檔案上傳:

1. 把要上傳的檔案分割成小的包, 檔案名稱如: guid-1.m, guid-2.m

2. 寫設定檔,記錄檔案名稱,及總的包數, 包的大小

3. 控制項依次上傳檔案,服務端要接收後判斷傳過來的參數, 總包數等於當前第幾包的時候, 把檔案組合

4. 用web上傳1g內容要很長時間, <processModel>的deallock時間要設得很長, Web.config中的httpRuntime一節也要進行設定
-----
預設只能上傳4M的檔案,要想上傳更大的檔案需要在web.config中設定就
<httpRuntime useFullyQualifiedRedirectUrl="true"
            maxRequestLength="819200"
            executionTimeout="900"/>
-----
在WEB上用ACTIVEX控制項,使用者上傳的目錄等都是定的,對使用者來講其實和WEB上傳一樣呀,在WEB上選擇一個上傳檔案,管理還是和完全用WEB來傳一樣。,我覺得沒什麼不妥呀,FTP又穩定,為什麼不採用呢?

用VB做一個FTP的ACTIVEX是很簡單的事情,網上也很多,有些可以直接拿來用,介面稍微修改下就成了。
-----
在/Microsoft.NET/Framework/v1.0.3705/CONFIG/machine.config檔案中,定位maxRequestLength,改變其值為你需要的值,如
maxRequestLength="10240",表示可以上傳10M的檔案
-----
B/S結構下很難以實現檔案的續傳,如果實在是速度慢,不防開一個後台線程來上傳。
-----
個人認為用c/s方式上傳檔案,用b/s管理檔案才是最終的解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.