【问题标题】:How to detect when a user has successfully finished downloading a file in php如何检测用户何时成功完成php中的文件下载
【发布时间】:2010-09-16 17:06:01
【问题描述】:

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

【问题讨论】:

    标签: php http-headers attachment


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2013-09-11
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多