Php 检测下载是否完成
我有一个非常简单和标准的PHP强制下载脚本 如何检查下载是否完成/何时完成以通知客户端用户?我甚至不需要实时显示进度,我只对非常具体的事件感兴趣:“下载完成时”。根据我的研究,似乎必须从服务器端确定,因为没有Php 检测下载是否完成,php,javascript,ajax,dom,mootools,Php,Javascript,Ajax,Dom,Mootools,我有一个非常简单和标准的PHP强制下载脚本 如何检查下载是否完成/何时完成以通知客户端用户?我甚至不需要实时显示进度,我只对非常具体的事件感兴趣:“下载完成时”。根据我的研究,似乎必须从服务器端确定,因为没有ondownloadready事件,而且我认为不可能拦截浏览器事件 因此,我的最佳选择似乎是使用某种客户端/服务器端交互将发送的字节与总字节进行比较。如何检查从服务器发送的PHP强制下载字节?是否有某种全局PHP变量存储这些数据,我可以用AJAX ping这些数据 <?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();
?>
我需要这个的原因是:
对于我正在处理的项目,需要在下载开始后,页面重定向到(或显示)一个“下载完成时请稍候”页面。然后,一旦完成,它应该重定向到(或显示)一个“下载完成,谢谢”页面。我愿意接受其他能达到同样效果的想法。看看这篇描述解决方案的文章
基本上,一旦while循环中断,您就完成了
下面是一个完整的线程,它描述了如何使用AJAX轮询来检测下载何时完成:+1用于编写一个非常清晰和彻底的问题。您好,您找到解决方案了吗?我需要这个东西