一个PHP写的进度条

一个很简单的PHP上传文件进度条,如果还看不懂就去祈祷上苍吧!
以下代码仅作为配合上传组件使用的参考!


<?php 
header("Content-Type:text/html; charset=utf-8");
set_time_limit(0);
ob_end_clean();
//for($i = 1;$i <= 300; $i++ ) echo('');
$dir = "download/";
$file="IPB.3.0.5.NULL-DGT.7z";//你要上传的东东
$obj= $dir."website.7z";//目标文件,就是文件上传到哪里
$length="100";//进度条长度,可能不准备
$pimg="pro.gif";//进度条图片,自己做个width:1px 的图片
$csize="1000000";//每次拷贝的尺寸,单位字节
if(!is_dir($dir))
mkdir($dir,0777);
$size=filesize($file);
if(file_exists($obj)&&is_file($obj)){
$fsize=filesize($obj);
}
else{
$fsize="0";
}
$data=fread(fopen("$file","rb"),$size);
$nums=ceil(($size-$fsize)/$csize);
echo"<img src=$pimg width=".floor($length*$fsize/$size)." height=10>";
for($i="0";$i<$nums;$i++){
$start=$fsize+$i*$csize;
$cdata=substr($data,$start,$csize);
$msize=strlen($cdata);
fwrite(fopen($obj,"ab"),$cdata);
echo"<img src=$pimg width=".floor($length*$msize/$size)." height=10>";
flush();
sleep(1);
}
echo $percentage,' %';
echo '<p><font color="red">上传成功,文件大小:',$size,' Byte.</font></p>';
?>
文章附属文件

文件名称: 20180105115114431808.png

文件大小:1.09 KB

文件签名:5CF962A1AC772F5FE074006B91FDD5EEEF2ED44C

评论列表

Blues
- - 仔细看了下 ,恩 配合上传组件.... 但实际是不可能的!~ 没法在上传完毕前获取tmp_name
2010-06-19 12:34:51
Blues
这个偶需要的~ 踩一个
2010-06-18 22:49:02