2012-03-12 51 views
0

我想允許一個網站用戶能夠從我的網站下載文件,但在客戶端下載程序的幫助下,能夠繼續下載中斷。JavaScript下載器

例如,我想給一個人發送一個大小爲30+ Meg的文件。我希望用戶擁有最好的下載體驗,所以我無法承受他下載25兆字節,然後由於網絡問題而下載下載。

因此,我希望在下載頁面上呈現一個JavaScript下載器,它將顯示實際的客戶端文件傳輸,以及何時下載,以便用戶能夠保存該文件。

還是不可能的,因爲JavaScript將無法打開保存文件對話框並保存到文件系統?

回答

3

恐怕是不可能的JavaScript的,這就是爲什麼:

要繼續從某一點,你應該向服務器發送位置編號,開始從網上下載下載。由於JavaScript無法訪問本地文件系統,因此無法獲得該位置。

UPD:看起來我太急於回覆。 可以使用HTML5 File API獲取文件大小,獲取文件大小後,可以將其傳遞給應支持部分下載的服務器。

但無論如何,下載文件的另一部分後,你應該以某種方式縫合兩塊;標準的網頁瀏覽器對話框只會建議覆蓋文件。

UPD2:與一些互聯網探索者文件的工作,你可以使用FileSystemObject的:

var fso; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
+0

你可以使用一個Cookie存儲下載量,並用AJAX下載湊齊了。但我並不太確定。 – Manishearth 2012-03-12 14:57:00

+0

我已經用更多數據更新了我的回覆,但似乎無論如何都不可能全功能部分下載。 – Minras 2012-03-12 15:09:28

+0

@Manishearth,正如我所看到的,當連接斷開時,PHP無法跟蹤該連接,並且在連接丟失後無法發送正確的Cookie標頭。 – Minras 2012-03-12 15:11:52