【发布时间】:2012-07-23 14:05:27
【问题描述】:
我在 PHP 中编写了一个下载脚本,如下所示,我的脚本正在正确下载文件,但我感觉浏览器(chrome)进度条没有定期正确更新。
我的文件大小为 320MB,在下载该文件时,进度会随机更新为“11MB、76MB、200Mb 和 320MB”或“70MB 和 320MB”等。
在大多数网站中,下载进度更新都是以恒定的块进行的,例如每 MB 之后,所以我想知道我们如何控制进度更新间隔,可能是通过发送一些额外的标头或其他方式。
我想通过定期更新进度来改善用户体验,所以请任何人帮助我以适当的方式处理这种情况。
// 用于 ZIP 文件下载的 HTTP 标头 // http://perishablepress.com/press/2010/11/17/http-headers-file-downloads/ // 文件变量 $filename = "电影曲调.zip"; $filepath = "文件/"; // 用于 zip 下载的 http 标头 header("Pragma: public"); header("过期时间:0"); header("Cache-Control: public,must-revalidate, post-check=0, pre-check=0"); header("内容描述:文件传输"); // MIME header("内容类型:应用程序/八位字节流"); header("内容配置:附件;文件名=\"".$filename."\""); header("内容传输编码:二进制"); // MIME header("内容长度:".filesize($filepath.$filename)); ob_end_flush(); @readfile($filepath.$filename);谢谢,
湿婆
【问题讨论】:
-
你是在本地测试这个吗?转移总共需要多长时间?也许它结束得太快了......
-
Yes Deceze,我在本地测试,下载速度很快可能是本地环境的原因。但是想知道我们是否可以通过任何方式控制进度更新间隔...
标签: php download http-headers progress