3
我有一个非常简单和标准的PHP强制下载脚本。检测下载是否完成
如何检查下载是否完成以及何时通知客户端的用户?我甚至不需要实时显示进度,我只对特定事件感兴趣:“下载完成时”。根据我的研究,似乎必须从服务器端确定,因为没有ondownloadready
事件,我不认为有可能拦截浏览器事件。
所以看来我最好的选择是比较发送到总字节数的字节与某种客户端/服务器端交互。我将如何去检查从服务器发送的PHP强制下载的字节?是否有某种全局PHP变量存储这些数据,我可以用AJAX进行ping?
<?php
header("Content-Type: video/x-msvideo");
header("Content-Disposition: attachment; filename=\"".basename($realpath)."\";");
...
$chunksize = 1 * (1024 * 1024); // how many bytes per chunk
if ($size > $chunksize) {
$handle = fopen($realpath, 'rb');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
}
else {
readfile($realpath);
}
exit();
?>
的原因,我需要这样的:
对于这个项目我的工作,就要求下载开始后,将页面重定向到(或显示器)“请等待下载完成“页面。然后,一旦完成,它应该重定向到(或显示)“您的下载已完成,谢谢”页面。我愿意接受其他可以达到相同结果的想法。
+1编写非常清晰和透彻的问题。 – jmort253 2011-02-09 02:58:00