我正在使用它向用户发送文件
header('Content-type: application/zip'); header('Content-Length: ' . filesize($file)); header('Content-Disposition: attachment; filename="file.zip"'); readfile($file);
用户下载后我想删除该文件,我该怎么做?
编辑:我的情况是这样的,当用户点击下载按钮时,我的脚本将创建一个临时zip文件,然后用户下载该文件,然后该临时zip文件将被删除。
EDIT2:好的最佳方法似乎是运行一个cron作业,该作业每小时将清理一次临时文件。
EDIT3:我使用来测试了我的脚本unlink,除非用户取消下载,否则它将起作用。如果用户取消下载,则zip文件将保留在服务器上。这样就足够了。:)
unlink
EDIT4:哇!connection_aborted()搞定了!
connection_aborted()
ignore_user_abort(true); if (connection_aborted()) { unlink($f); }
即使用户取消下载,此文件也将删除文件。
unlink($filename);
这将删除文件。
它需要与ignore_user_abort() Docs 结合使用,unlink即使用户取消下载,该 文件 仍然可以执行。
ignore_user_abort()
ignore_user_abort(true); ... unlink($f);