9

我有一个处理文件下载请求的 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);
4

2 回答 2

11

在单独的 php 脚本中处理下载(最好多做一点readfile($file);,您还可以像在这个问题中一样提供恢复下载的能力)。然后在这个脚本中,当您读取最后一个块并发送它时,您就知道所有文件都已发送。这与知道所有内容都已收到不同,但对于大多数情况来说应该足够了。

于 2008-10-11T20:48:28.993 回答
4

Treb 说了什么,但我应该补充一点,您可以使用connection_status()检查客户端在下载期间是否仍在侦听。

不要忘记flush()在将数据写入客户端后,它有助于检测连接是否仍然正常。

于 2008-10-12T23:02:45.010 回答