使用PHP或JS,我们能判断一个文件是否在用户';s机器


With PHP or JS, can we tell at all if a file finished downloading on user's machine?

是否可以从PHP级别或使用JavaScript判断文件已在用户浏览器上下载完成?

我有一个PHP方法,它设置头,然后读取文件()。我需要记录文件名和下载时间。我尝试过在readfile或fread之后简单地记录数据,但都失败了——它会记录数据,但是在文件下载之前很久。现在我明白了,这是因为这些方法将文件内容输出到缓冲区,这意味着,下一行代码是在文件输出后触发的,而不是在下载完成后触发的(如果这种说法不正确,请纠正我)。

那么,有什么方法可以做到这一点吗?

使用JS,您可以知道浏览器是否已完成加载。使用jQuery函数ready(只有在DOM(即页面的所有元素)完全加载后才会触发),您可以触发对服务器的AJAX调用,通知您浏览器已完成加载。

PHP无法做到这一点,因为你只能知道数据是发送的,而不是接收的。

$(document).ready({
    // Trigger an AJAX call here
});