眾所皆知,web上傳大文件,一直是一個痛。上傳文件大小限制,頁面響應時間超時.這些都是web開發所必須直面的。
本文給出的解決方案是:前端實現數據流分片長傳,后面接收完畢后合並文件的思路。
實現文件夾上傳,要求:服務端保留層級結構,支持10w級別的文件夾上傳。
大文件上傳及斷點續傳,要求:支持50G級的單個文件上傳和續傳。續傳要求:在刷新瀏覽器后能夠續傳上傳,在重啟瀏覽器后能夠繼續上傳上(關閉瀏覽器后重新打開),在重啟電腦后能夠繼續上傳。
支持PC端全平台,Windows,Mac,Linux
瀏覽器要求支持全部瀏覽器,包括ie6,ie7,ie8,ie9,Chrome,Firefox
下面貼出簡易DEMO源碼分享:
前端頁面:
后端代碼,此Demo是基於MVC架構的:
后端代碼我進行了模塊划化,而不是網上的將所有的模塊放在一個類中,這樣對於以后的維護和升級來說都是一個災難。
文件塊處理邏輯
文件塊保存邏輯如下
web.xml配置如下
整個項目的截圖
依賴的JAR包如下
運行效果如下:
在此分享!希望多多指正~
后端代碼邏輯大部分是相同的,目前能夠支持MySQL,Oracle,SQL。在使用前需要配置一下數據庫,可以參考我寫的這篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上傳與下載/
歡迎入群一起討論:374992201