php下载文件显示进度(适用于CLI模式或长连接)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php下载文件显示进度(适用于CLI模式或长连接)相关的知识,希望对你有一定的参考价值。
- 代码:
<?php /* @desc:php下载文件显示进度 @param file 待下载文件名 @param name 存储到本地文件名 */ function downloadprogress($file,$name){ $dir = dirname($name); if(!is_dir($dir)){ mkdir($dir,0755,true); } ob_start(); set_time_limit(0); $fr = fopen ($file, "rb"); if ($fr) { $content = file_get_contents($file); $filesize = strlen($content); $fw = fopen ($name, "wb"); $downlen=0; $last = 0; $diff = 0; echo "["; if ($fw) { while(!feof($fr)) { $data = fread($fr, 1024 * 8 ); $downlen += strlen($data); fwrite($fw, $data, 1024 * 8 ); $percent = round($downlen/$filesize*100,2); $diff += $percent - $last; if($diff > 1){ echo "#"; $diff = 0; } $last = $percent; ob_flush(); flush(); } echo "#]done"; } if ($fr) { fclose($fr); } if ($fw) { fclose($fw); } } }
- 测试:
downloadprogress(‘2018.rar‘,‘aaa/01.rar‘);
- 输出(cli下):
以上是关于php下载文件显示进度(适用于CLI模式或长连接)的主要内容,如果未能解决你的问题,请参考以下文章
适用于 PHP 的 AWS Elastic Beanstalk 通过 CLI 上传 ZIP 应用程序