当前位置:   article > 正文

php文件下载显示进度条,PHP下载文件并显示进度条

php下载文件进度条
下载进度条演示
文件大小
未知长度
已经下载
0
完成进度
0%

//文件长度

var filesize=0;

function $(obj) {return document.getElementById(obj);}

//设置文件长度

function setFileSize(fsize) {

filesize=fsize;

$("filesize").innerHTML=fsize;

}

//设置已经下载的,并计算百分比

function setDownloaded(fsize) {

$("downloaded").innerHTML=fsize;

if(filesize>0) {

var percent=Math.round(fsize*100/filesize);

$("progressbar").style.width=(percent+"%");

if(percent>0) {

$("progressbar").innerHTML=percent+"%";

$("progressText").innerHTML="";

} else {

$("progressText").innerHTML=percent+"%";

}

}

}

ob_start();

@set_time_limit(300);//设置该页面最久执行时间为300秒

$url="http://xmgl.scst.gov.cn/up_files/2016/Chrome.zip";

$newfname="chrome.zip";//本地存放位置

$file = fopen ($url, "rb");

if ($file) {

//获取文件大小

$filesize = -1;

$headers = get_headers($url, 1);

if ((!array_key_exists("Content-Length", $headers))) $filesize=0;

$filesize = $headers["Content-Length"];

//不是所有的文件都会先返回大小的,有些动态页面不先返回总大小,这样就无法计算进度了

if ($filesize != -1) {

echo "";//在前台显示文件大小

}

$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);

}

}

?>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/264344
推荐阅读
相关标签
  

闽ICP备14008679号