假设用户单击链接来下载文件。用户看到“另存为”对话框,但随后单击“取消”。你如何检测到这一点?这意味着如果用户点击取消链接或没有获取整个文件,服务器不应记录该文件已下载。
过去我这样做过:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
flush()
log()
exit;
log 应该仅在 readfile 完成后运行,这意味着整个文件已流式传输给用户。我已经有一段时间没有这样做了,我不知道确切的代码在哪里,所以这可能不准确,但它应该可以帮助你继续。
编辑我在 php.net 上找到了上面的代码,它或多或少是我所描述的,这个方法should work.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)