我正在使用它来向用户发送文件
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 文件将保留在服务器上。所以现在就足够了。 :)
EDIT4:哇! connection_aborted()
成功了!
ignore_user_abort(true);
if (connection_aborted()) {
unlink($f);
}
即使用户取消下载,这个文件也会被删除。
最佳答案
unlink($filename);
这将删除文件。
需要结合ignore_user_abort()
Docs这样即使用户取消下载,unlink
仍然会执行。
ignore_user_abort(true);
...
unlink($f);
关于php - 用户下载后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641667/