检查下载是否完成

检测下载是否完成的最佳方法是什么,因为此后我想更新数据库。

我尝试了PHP手册中的一些代码,但对我来说并没有多大作用:

header("Content-Type: application/octet-stream"); 

header("Content-Length: ".filesize($file));

header("Content-Disposition: attachment; filename=$filename");

// buffered read not using readfile($file);

if ($fp = fopen($bestand, 'rb')) {

while (!feof($fp)) {

$buf = fread($fp, 4096);

echo $buf;

$bytesSent += strlen($buf); /* We know how many bytes were sent to the user */

}

}

if ($bytesSent == filesize($fp)) {

//do something with db

}

回答:

但这并不能真正告诉您用户是否已完成下载。当 完成向用户发送字节后,它将告诉您,但它并没有说明用户实际收到了多少字节。

实际上,PHP(服务器端而非客户端语言)无法真正检测文件下载何时完成。最好的办法是在下载开始时将下载记录在数据库中。如果您绝对,完全和完全需要知道下载何时完成,则必须执行诸如嵌入Java小程序或使用Flash之类的操作。但是,就用户的可用性而言,通常这不是正确的答案(为什么要求他们安装Java或Flash只是为了从您那里下载内容?)。

以上是 检查下载是否完成 的全部内容, 来源链接: utcz.com/qa/398374.html

回到顶部