How to detect when a user has successfully finished downloading a file in php
我有一个处理文件下载请求的PHP页面。我需要能够检测文件下载成功的时间。怎么能做到?也许有一些方法可以检测这个客户端,然后将确认发送到服务器。
谢谢。
编辑:我的意思是,页面正在这样做:
1 2 3 4 5
| $file = '/var/www/html/file-to-download.xyz';
header('Content-Type: application/octet-stream');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename=' . basename($file));
readfile($file); |
在单独的php脚本中处理下载(最好不要只执行readfile($file);,您还可以提供恢复下载的功能,如本问题中所述)。然后在这个脚本中,当您读取最后一个块并发送它时,您就知道所有文件都已发送。这与知道收到了所有内容不同,但对于大多数场景来说,这就足够了。
treb说了什么,但我应该补充一点,您可以检查客户端在下载过程中是否仍在使用connection_status()进行监听。
别忘了在向客户机写入数据后,flush()会帮助检测连接是否仍然正常。