代码之家  ›  专栏  ›  技术社区  ›  sledgebox

如何检测用户在PHP中成功下载完文件的时间

  •  9
  • sledgebox  · 技术社区  · 16 年前

    我有一个处理文件下载请求的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);
    
    2 回复  |  直到 14 年前
        1
  •  11
  •   Community CDub    8 年前

    在单独的PHP脚本中处理下载(最好做的不仅仅是 readfile($file); ,您还可以像这样继续下载 question ) 然后在这个脚本中, 阅读 最后一个块并发送它,您知道所有文件都已发送。这与知道所有内容都已收到不同,但对于大多数场景来说,这就足够了。

        2
  •  4
  •   Willem    16 年前

    Treb说了什么,但我应该补充一点,您可以检查客户端在下载过程中是否仍在监听 connection_status() .

    别忘了 flush() 向客户机写入数据后,它有助于检测连接是否仍然正常。