1.使用PHP的創始人 Rasmus Lerdorf 寫的APC擴展模塊來實現(http://pecl.php.net/package/apc)
APC實現方法:
安裝APC,參照官方文檔安裝,可以使用PECL模塊安裝方法快速簡捷,這里不說明
配置php.ini,設置參數 apc.rfc1867=1 ,使APC支持上傳進度條功能,在APC源碼說明文檔里面有說明
代碼范例:
大文件(50G)上傳的實現細節:
服務端接收文件數據的處理邏輯代碼:
2.使用PECL擴展模塊uploadprogress實現(http://pecl.php.net/package/uploadprogress)
uploadprogress 模塊實現方法:
使用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。
歡迎入群一起討論“374992201”