我想允許一個網站用戶能夠從我的網站下載文件,但在客戶端下載程序的幫助下,能夠繼續下載中斷。JavaScript下載器
例如,我想給一個人發送一個大小爲30+ Meg的文件。我希望用戶擁有最好的下載體驗,所以我無法承受他下載25兆字節,然後由於網絡問題而下載下載。
因此,我希望在下載頁面上呈現一個JavaScript下載器,它將顯示實際的客戶端文件傳輸,以及何時下載,以便用戶能夠保存該文件。
還是不可能的,因爲JavaScript將無法打開保存文件對話框並保存到文件系統?
我想允許一個網站用戶能夠從我的網站下載文件,但在客戶端下載程序的幫助下,能夠繼續下載中斷。JavaScript下載器
例如,我想給一個人發送一個大小爲30+ Meg的文件。我希望用戶擁有最好的下載體驗,所以我無法承受他下載25兆字節,然後由於網絡問題而下載下載。
因此,我希望在下載頁面上呈現一個JavaScript下載器,它將顯示實際的客戶端文件傳輸,以及何時下載,以便用戶能夠保存該文件。
還是不可能的,因爲JavaScript將無法打開保存文件對話框並保存到文件系統?
恐怕是不可能的JavaScript的,這就是爲什麼:
要繼續從某一點,你應該向服務器發送位置編號,開始從網上下載下載。由於JavaScript無法訪問本地文件系統,因此無法獲得該位置。
UPD:看起來我太急於回覆。 可以使用HTML5 File API獲取文件大小,獲取文件大小後,可以將其傳遞給應支持部分下載的服務器。
但無論如何,下載文件的另一部分後,你應該以某種方式縫合兩塊;標準的網頁瀏覽器對話框只會建議覆蓋文件。
UPD2:與一些互聯網探索者文件的工作,你可以使用FileSystemObject的:
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
我會考慮製作插件或擴展。就像Firefox和Google Chrome的DownloadThemAll擴展一樣。另一種方法是使用Flash,單獨或與類似的JavaScript這裏暗示它整合:http://www.communitymx.com/content/article.cfm?cid=0922A
你可以使用一個Cookie存儲下載量,並用AJAX下載湊齊了。但我並不太確定。 – Manishearth 2012-03-12 14:57:00
我已經用更多數據更新了我的回覆,但似乎無論如何都不可能全功能部分下載。 – Minras 2012-03-12 15:09:28
@Manishearth,正如我所看到的,當連接斷開時,PHP無法跟蹤該連接,並且在連接丟失後無法發送正確的Cookie標頭。 – Minras 2012-03-12 15:11:52