1.使用PHP的創始人 Rasmus Lerdorf 寫的APC擴展模塊來實現(http://pecl.php.net/package/apc)php
APC實現方法:數據庫
安裝APC,參照官方文檔安裝,能夠使用PECL模塊安裝方法快速簡捷,這裏不說明瀏覽器
配置php.ini,設置參數 apc.rfc1867=1 ,使APC支持上傳進度條功能,在APC源碼說明文檔裏面有說明wordpress
代碼範例:測試
大文件(50G)上傳的實現細節:spa
服務端接收文件數據的處理邏輯代碼:.net
2.使用PECL擴展模塊uploadprogress實現(http://pecl.php.net/package/uploadprogress)3d
uploadprogress 模塊實現方法:blog
使用PECL模塊安裝方法安裝該模塊接口
php.ini裏面設置 uploadprogress.file.filename_template = 「/tmp/upd_%s.txt」
代碼範例:
進度的處理邏輯比較簡單,只是更新數據庫中的數據就好了。不須要作其它的處理。
客戶端代碼以下:
服務端代碼以下:
實現後的效果:
強大的文件夾上傳,可以輕鬆支持10W級別的文件夾上傳。
速度還不錯
文件支持續傳,支持刷新瀏覽器,關閉瀏覽器,重啓電腦以後仍然可以續傳。
理論上能夠上傳無限大的文件實時顯示上傳狀態、進度支持多文件上傳以及與表單混合上傳方便的用戶調用接口上傳進度提供兩種顯示模式:新窗口或者內嵌式(0.3)多語言支持(0.21)兼容各類瀏覽器(通過測試的瀏覽器:IE5.0、IE6.0、Mozilla、Firefox、Opera)支持Mac、Linux。