PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

PHP持续保有长连接,利用flush持续更新浏览器UI,下载进度条实现

原创
2016-08-08 09:31:05 1002浏览

如何用PHP+JS实现上传进度条,大部分的人可能都实现过,但是下载呢?如何呢?原理也是差不多的,就是分次读写,每次读多少字节,但是这样的不好就是长连接,一般实现下载进度条常用的两种解决方案是:一种是需要用socket保持与客户端通信,持续保有长连接,利用flush()持续更新浏览器UI,返回已下载的数据大小,然后可以显示下载速度,以及进度条之类;二种是php与flash交互,显示进度条。


文件大小
未知长度
已经下载
0
完成进度
0%
setFileSize($filesize);";//在前台显示文件大小 } $newf = fopen ($newfname, "wb"); $downlen=0; if ($newf) { while(!feof($file)) { $data=fread($file, 1024 * 8 );//默认获取8K $downlen+=strlen($data);//累计已经下载的字节数 fwrite($newf, $data, 1024 * 8 ); echo "";//在前台显示已经下载文件大小 ob_flush(); flush(); } } if ($file) { fclose($file); } if ($newf) { fclose($newf); } } ?>

以上就介绍了PHP持续保有长连接,利用flush持续更新浏览器UI,下载进度条实现,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。