3
我有一個非常簡單和標準的PHP強制下載腳本。檢測下載是否完成
如何檢查下載是否完成以及何時通知客戶端的用戶?我甚至不需要實時顯示進度,我只對特定事件感興趣:「下載完成時」。根據我的研究,似乎必須從服務器端確定,因爲沒有ondownloadready
事件,我不認爲有可能攔截瀏覽器事件。
所以看來我最好的選擇是比較發送到總字節數的字節與某種客戶端/服務器端交互。我將如何去檢查從服務器發送的PHP強制下載的字節?是否有某種全局PHP變量存儲這些數據,我可以用AJAX進行ping?
<?php
header("Content-Type: video/x-msvideo");
header("Content-Disposition: attachment; filename=\"".basename($realpath)."\";");
...
$chunksize = 1 * (1024 * 1024); // how many bytes per chunk
if ($size > $chunksize) {
$handle = fopen($realpath, 'rb');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
}
else {
readfile($realpath);
}
exit();
?>
的原因,我需要這樣的:
對於這個項目我的工作,就要求下載開始後,將頁面重定向到(或顯示器)「請等待下載完成「頁面。然後,一旦完成,它應該重定向到(或顯示)「您的下載已完成,謝謝」頁面。我願意接受其他可以達到相同結果的想法。
+1編寫非常清晰和透徹的問題。 – jmort253 2011-02-09 02:58:00