我用這來發送文件到用戶刪除用戶後,文件下載
header('Content-type: application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="file.zip"');
readfile($file);
我想刪除用戶下載之後這個文件,我怎麼能做到這一點?
編輯:我的場景就是這樣,當用戶點擊下載按鈕時,我的腳本將創建一個臨時的zip文件,然後用戶下載它,然後該temp文件將被刪除。
EDIT2:確定最好的方法似乎運行一個小時將清理臨時文件的cron作業。
編輯3:我測試了我的腳本與unlink
,它的工作原理,除非用戶取消下載。如果用戶取消下載,則zip文件保留在服務器上。所以現在已經足夠了。 :)
編輯4:哇! connection_aborted()
取得了訣竅!
ignore_user_abort(true);
if (connection_aborted()) {
unlink($f);
}
即使用戶取消下載,也會刪除該文件。
可能重複[檢查是否下載完成(http://stackoverflow.com/questions/1563187/check-如果下載完成) – hakre 2013-03-13 12:53:17