2008-10-11 162 views
9

我有一个PHP页面,它处理文件下载的请求。我需要能够检测文件何时被成功下载。如何才能做到这一点?也许有一些检测这个客户端的方法,然后发送一个确认到服务器。如何检测用户何时已成功完成下载文件在php

谢谢。

编辑: 通过手柄,我的意思是页面正在做这样的事情:

$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); 

回答

11

处理下载在一个单独的PHP脚本(更好做的不仅仅是readfile($file);多一点,你也可以提供恢复像这样的question下载的能力)。 然后在这个脚本中,当你读取最后一块并发送它时,你知道所有的文件都被发送了。这与知道全部已收到并不相同,但对于大多数情况来说,这应该足够了。

4

特雷布说什么,但我应该补充说,您可以检查客户端是否仍在使用connection_status()进行下载。

在向客户端写入数据后,请不要忘记flush(),这有助于检测连接是否仍然存在。

相关问题