2015-04-05 70 views
2

我可以使用PHP創建帶有過期時間的動態下載鏈接。但是我想在用戶完成下載時刪除鏈接。有什麼方法可以知道用戶何時用PHP或JavaScript完成下載?如何使用PHP或JavaScript檢查下載是否完成?

+1

不可靠地使用JavaScript AFAIK。您可以做的最好的事情是在您選擇N天,幾小時後自動刪除文件。這就是爲什麼所有的網站(*做*都有這樣的內容)說:「親愛的用戶,您的下載鏈接將可用於* N次*。」 – 2015-04-05 06:18:57

+0

是否要刪除文件或鏈接文件的鏈接? – cmbarbu 2015-04-05 07:08:28

+0

相關http://stackoverflow.com/questions/21035294/showing-download-progress-while-downloading-a-file-using-php-and-jquery和http://stackoverflow.com/questions/9245347/download- status-with-php-and-javascript – 2015-04-07 13:15:15

回答

0

使用php頁面處理用戶請求下載,這會觸發它在短時間後刪除它?

+0

在一個有快速互聯網連接的城鎮和在一個移動連接的某個荒涼的村莊裏,「短時間」是不一樣的 – 2015-04-05 06:23:35

+0

根據文件大小,你可以考慮撥號連接和刪除文件很長一段時間後,或24小時後請求。 – Illuminati 2015-04-05 06:35:50

0

這通常是客戶端處理。

對於相關問題here可以找到一個很好的答案。

我處理的方式是使用jQuery。在JavaScript中,我會異步啓動下載,並且調用函數允許調用回調函數。在此回調函數中,您可以清空與您的下載鏈接對應的div,並可能向服務器發送消息。

// have a div in your document to call this JavaScript script 
    // first get the file in local memory 
    var file = "myfile.csv"; 
    $.get(file, function(data){ 
     // everything here will be done only when the download is finished 
     // in particular you want the user to be able to get the file using 
     mydoc.execCommand("saveAs",true,".txt"); 

     // as described 
     // here: http://www.webdeveloper.com/forum/showthread.php?12509-how-to-pop-up-Save-As-Window 

     // you can also change the div containing the link/button activating the download 
     // and possibly send the server a download OK signal 

});

+0

如何可靠地說「是的,文件已被客戶端成功下載」。 ? – 2015-04-05 06:24:51

+0

這是異步下載功能的工作。它只會在下載完成後纔會調用回調函數 – cmbarbu 2015-04-05 06:42:50

+0

請您指出一些解釋使用成功的*下載回調*的文檔嗎? – 2015-04-05 06:43:56

相關問題