2008-10-11 82 views
9

我有一個PHP頁面,它處理文件下載的請求。我需要能夠檢測文件何時被成功下載。如何才能做到這一點?也許有一些檢測這個客戶端的方法,然後發送一個確認到服務器。如何檢測用戶何時已成功完成下載文件在php

謝謝。

編輯: 通過手柄,我的意思是頁面正在做這樣的事情:

$file = '/var/www/html/file-to-download.xyz'; 
    header('Content-Type: application/octet-stream'); 
    header('Content-Length: ' . filesize($file)); 
    header('Content-Disposition: attachment; filename=' . basename($file)); 
    readfile($file); 

回答

11

處理下載在一個單獨的PHP腳本(更好做的不僅僅是readfile($file);多一點,你也可以提供恢復像這樣的question下載的能力)。 然後在這個腳本中,當你讀取最後一塊併發送它時,你知道所有的文件都被髮送了。這與知道全部已收到並不相同,但對於大多數情況來說,這應該足夠了。

4

特雷布說什麼,但我應該補充說,您可以檢查客戶端是否仍在使用connection_status()進行下載。

在向客戶端寫入數據後,請不要忘記flush(),這有助於檢測連接是否仍然存在。

相關問題