upload大檔案 用戶端

來源:互聯網
上載者:User
想請教下,各位都用什麼來實現檔案上傳? 需要web用戶端,能大檔案上傳,如果是ftp或其他協議需要能夠在上傳結束後通知http伺服器端,或者至少伺服器端能有prepost events
如果是http上傳需要能夠支援chunk,希望是html5或flash的解決方案,不要java applet或者javaFx
即便是付費的不要像aspera那樣的貴東西
最主要的是能很好的上傳大檔案,大檔案是指最大到上100G的檔案,

伺服器端如果能有php的script最好
我試過的有jquery file upload 和plupload


回複討論(解決方案)

建議使用flash+php來實現,有第三方類庫

建議使用flash+php來實現,有第三方類庫

能具體點麼,flash的用戶端叫什嗎?

PHP+Flash多檔案非同步上傳
第三方類庫swfupload你可以參考一下。

建議使用flash+php來實現,有第三方類庫 自己可以設定上傳檔案的大小。

上傳大小限制是配置php.ini哇

想請教下,各位都用什麼來實現檔案上傳? 需要web用戶端,能大檔案上傳,如果是ftp或其他協議需要能夠在上傳結束後通知http伺服器端,或者至少伺服器端能有prepost events
如果是http上傳需要能夠支援chunk,希望是html5或flash的解決方案,不要java applet或者javaFx
即便是付費的不要像aspera那樣的貴東西
最主要的是能…… 用Flash的控制項是無法上傳100G的檔案的,別說100G,就是100MB也不行。因為目前網上免費的Flash控制項都還不支援斷點上傳功能。而且也沒有MD5掃描功能。

想請教下,各位都用什麼來實現檔案上傳? 需要web用戶端,能大檔案上傳,如果是ftp或其他協議需要能夠在上傳結束後通知http伺服器端,或者至少伺服器端能有prepost events
如果是http上傳需要能夠支援chunk,希望是html5或flash的解決方案,不要java applet或者javaFx
即便是付費的不要像aspera那樣的貴東西
最主要的是能…… 傳統的HTML方式已經難已滿足超大檔案的上傳。別說是100MB,50MB對伺服器來說都是非常大的,服務不僅要專門開一個socket串連接一直等待這個檔案上傳完畢,還要分配同等大小的記憶體來儲存這個檔案對伺服器造成的壓力相當的大,而且這個壓力將會隨著使用者的增加而成幾何式的增加。就算是用Flash也不行,因為目前的Flash不支援斷點續傳操作,也不支援檔案分塊操作,Flash和傳統的HTML方式上傳原理一樣。用Flash上傳100MB圖片,伺服器也要分配100MB的記憶體。10個使用者同時上傳100MB資料的話,就要吃掉伺服器1G的記憶體。
Flash上傳時是將整個檔案加截到記憶體中的,這是比較嚴重的問題。因為如果使用者要上傳5G的檔案,Flash也會將5G檔案全部載入到記憶體中。這樣會嚴重影響使用者的操作體驗。因為這時使用者的電腦會處於假死狀態。一般使用者電腦也就2G,所以直接掛掉,記憶體不足,或記憶體溢出。

有些朋友試過用Flash檔案上傳控制項來上傳超大檔案,但是經常遇到上傳逾時,或上傳出錯的問題。這是因為現在的Flash檔案上傳控制項使用的技術還是和傳統的HTML方式上傳一樣。讓伺服器開啟一個串連,然後一直等到用戶端把這個檔案傳完。但是在實際的網路環境中,使用者的網速可能只有50KB/S,上傳200MB的檔案可能要花2.8小時。但是伺服器的SESSION串連不可能為使用者等2.8個小時,這還不考慮複雜的網路環境,比如資料包丟失的情況。如果遇到資料包丟失和網路異常的情況,那使用者前面的100MB檔案是白傳了。這相當於浪費了使用者一個小時的時間。給使用者帶來了極差的體驗。
對於伺服器來講,串連資源是非常有限的,就算伺服器能夠為一個使用者等2.8個小時,如果使用者訪問一大,每一個使用者都佔用一個串連並且佔用這麼長時間,那麼伺服器的並發處理能力就變的非常低了。其它的使用者就算是請求一個簡單的1KB的HTML頁面也必須等伺服器處理完前面的使用者的請求。

同時Flash也無法滿足超大檔案的上傳需求。因為超大檔案上傳需求有一個要求就是要保證資料轉送的穩定性。比如使用者上傳1G的檔案,已經上傳了500MB,這時網突然斷了,但是使用者希望下次傳這個檔案的時侯是從最後一次上傳的位置開始傳輸,也就是從500MB的位置開始傳輸,這一個需求是Flash是無法做到的。

像QQ郵箱中的超大附件上傳功能,115網盤中的超大附件上傳控制項,華為網盤(DBank),金山快盤他們都是使用控制項來實現超大檔案上傳功能的。這樣做主要是減輕伺服器壓力(伺服器回應時間更快,並發處理能力更強),節省伺服器記憶體(伺服器不必為每個使用者都分配與檔案同等大小的記憶體),同時提高使用者體驗(使用者可在複雜的網路環境中上傳超大檔案)。

當然從技術角度來講,像這些互連網知名企業也是考慮了支撐海量使用者的分布式檔案儲存體構架設計。因為他們的檔案儲存體伺服器不可能是一台,而且會動態隨著使用者數的增加而增加。

如果真如部分朋友所說的Flash控制項就能解決超大檔案上傳的問題,那麼騰迅也不會花那麼大的力氣專門為QQ郵箱開發一個控制項了。

想請教下,各位都用什麼來實現檔案上傳? 需要web用戶端,能大檔案上傳,如果是ftp或其他協議需要能夠在上傳結束後通知http伺服器端,或者至少伺服器端能有prepost events
如果是http上傳需要能夠支援chunk,希望是html5或flash的解決方案,不要java applet或者javaFx
即便是付費的不要像aspera那樣的貴東西
最主要的是能…… 網上有一個Web超大檔案上傳斷點續傳控制項: http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
此控制項支援100G檔案的斷點續傳操作,提供了完善的開發文檔,支援檔案MD5驗證,支援檔案批量上傳。
支援瀏覽器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9
Maxthon(遨遊)1.x,Maxthon(遨遊)2.x,TT瀏覽器,QQ瀏覽器,360安全瀏覽器,
Chrome(Google瀏覽器),Maxthon3.x,360極速瀏覽器6.x,Firefox
粘貼檔案,簡化選擇檔案操作:

檔案MD5值計算進度:

檔案MD5值計算完畢

伺服器根據MD5檢測是否存在相同檔案

續傳檔案

從伺服器負載檔案列表

檔案上傳中

檔案上傳完畢

上傳檔案夾

與Discuz!X2整合-後台安裝斷點續傳控制項

與Discuz!X2整合-後台啟用斷點續傳控制項

與Discuz!X2整合-後台斷點續傳控制項啟用成功

與Discuz!X2整合-前台發帖頁面

與Discuz!X2整合-上傳


頁面調用範例程式碼:

    HTTP斷點續傳控制項與MySQL資料庫示範頁面(UTF-8)                        

資源下載:
cab安裝包
crx安裝包
xpi安裝包
exe安裝包
開發文檔
升級日誌
ASP.NET(C#)範例程式碼:
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP範例程式碼:
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SqlServer2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP範例程式碼:
PHP-MySQL-UTF8樣本
Chrome,Firefox,IE斷點續傳控制項樣本(以下樣本已整合IE32,IE64,Firefox,Chrome平台的外掛程式)
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP範例程式碼:
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SqlServer2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP範例程式碼:
PHP-MySQL-UTF8樣本

Chrome,Firefox,IE斷點續傳控制項樣本(以下樣本已整合IE(x86),IE(x64),Firefox,Chrome平台的外掛程式)
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SQL2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP-MySQL-UTF8樣本

Xproer.HttpUploader5: http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html
此控制項支援100G檔案的斷點續傳操作,提供了完善的開發文檔,支援檔案MD5驗證,支援檔案批量上傳。
支援瀏覽器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9
Maxthon(遨遊)1.x,Maxthon(遨遊)2.x,TT瀏覽器,QQ瀏覽器,360安全瀏覽器,
Chrome(Google瀏覽器),Maxthon3.x,360極速瀏覽器6.x,Firefox

頁面調用範例程式碼:

    HTTP斷點續傳控制項與MySQL資料庫示範頁面(UTF-8)                        

資源下載:
cab安裝包
crx安裝包
xpi安裝包
exe安裝包
開發文檔
升級日誌
ASP.NET(C#)範例程式碼:
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP範例程式碼:
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SqlServer2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP範例程式碼:
PHP-MySQL-UTF8樣本
Chrome,Firefox,IE斷點續傳控制項樣本(以下樣本已整合IE32,IE64,Firefox,Chrome平台的外掛程式)
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP範例程式碼:
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SqlServer2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP範例程式碼:
PHP-MySQL-UTF8樣本

Chrome,Firefox,IE斷點續傳控制項樣本(以下樣本已整合IE(x86),IE(x64),Firefox,Chrome平台的外掛程式)
ASP.NET-ACCESS樣本
ASP.NET-SQL2005樣本
JSP-ACCESS-GB2312樣本
JSP-ACCESS-UTF8樣本
JSP-SQL2005-UTF8樣本
JSP-MySQL-UTF8樣本
PHP-MySQL-UTF8樣本
不錯,這個使用者體驗不錯,和QQ郵箱裡面的大附件上傳功能一樣了。

Flash上傳超大檔案不行。上傳10MB左右的檔案還湊合。

收藏!!!!!!!!!!!!!!!!!!!!!!!

樓上的那幾位是托嗎? 如果不是謝謝了,但是這個控制項還是算了,這個價格我們不如加點錢買aspera了,他也提供各個瀏覽器的外掛程式

現在的話可以考慮用基於html5的chunk上傳,不過主流瀏覽器(chrome和FF)似乎都對file.slice的對象進行了大小限制,我看到fine uploader官網的說明是最大4G,也就是說100G什麼的就不現實了,不想用控制項的話這大概就是瓶頸了,就我所找到的也只有fine uploader和plupload支援切割檔案然後上傳,但具體效果如何也有待測試,還有,這兩者都是收費的。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.