我目前正在寻找一种在页面上显示文件下载状态的方法。 我知道这不是必需的,因为用户通常在浏览器中有下载状态,但我想让用户保持在他下载的页面上,只要下载持续。为此,下载状态应与文件实际具有的状态匹配(不是假的prograss栏)。也许它还会显示用户下载的速度,并根据当前的下载速率估算所需的时间。
可以使用PHP和Javascript完成吗?或者它真的需要Flash或Java吗?
服务器上的某处不应该是关于谁以什么速度和多少下载内容的信息?
提前感谢您的帮助。
答案 0 :(得分:2)
不太可能跨浏览器,但要仔细研究http://markmail.org/message/kmrpk7w3h56tidxs#query:jquery%20ajax%20download%20progress+page:1+mid:kmrpk7w3h56tidxs+state:results。 IE(像往常一样)是不打球的罪魁祸首。
答案 1 :(得分:0)
您可以使用两个单独的php文件,第一个文件进行下载过程。 像:
$strtTime=time();
$download_rate=120; //downloading rate
$fp = fopen($real, "r");
flush();// Flush headers
while (!feof($fp)) {
$downloaded=round($download_rate * 1024);
echo fread($fp,$downloaded );
ob_flush();
flush();
if (connection_aborted ()) {
// unlink("yourtempFile.txt" ;
exit;
}
$totalDw +=$downloaded;
// file_put_contents("yourtempFile.txt", "downloaded: $totalDw ; StartTime:$strtTime");
sleep(1);
}
fclose($fp);
// unlink("yourtempFile.txt") ;
第二个文件将被Ajax连续读取yourtempFile.txt。由于开始打印,因此不会使用会话和Cookie。