如何在PHP中实现loading.... 可不可以循环sleep一秒,并且判断最终生成的从临时目录copy到目标目录的文件是不是存在,如果存在就跳出来,并且每次往出打点.......什么的,只是想法,自己没做过。但估计是可以的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想不到有什么办法可以按上传进度打点。只能做出loading效果。 copy只有一个动作,sleep没法用啊 看看这个怎么样,刚写,没有完善<?php //by iwind [email protected]set_time_limit("3600");ob_end_clean();for($i = 1;$i <= 300; $i++ ) echo(" "); $file="jicheng.rar";//你要上传的东东$obj="upload/website.rar";//目标文件,就是文件上传到哪里$length="100";//进度条长度,可能不准备$pimg="pro.gif";//进度条图片$csize="10000";//每次拷贝的尺寸,单位字节$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"上传成功";?> 楼主要的应该是上传过程的百分比的loading. 呵呵。改一下程序就行了啊。现有进度条长度除以总进度条长度,可以把这个值设成一个表单隐藏区域,当onchange时,把值再赋给其它东西。 模仿loading效果,但是不能精确定位:在 <body> 与 </body> 之间加入:<CENTER> <TABLE cellSpacing=0 cellPadding=0 width=100% border=0 height="100%"> <TBODY> <TR> <TD> <DIV id=ld> <CENTER> <H1> Loading...</H1><TABLE width="50%"> <TBODY> <TR> <TD align=left> <TABLE id=lpc bgColor=#FFCC00> <TBODY> <TR> <TD> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV><DIV id=page style="DISPLAY: none"> <script language=JavaScript>ini = new Date().getTime();var pc = 0;load();function load() {pc += 4;lpc.style.width = pc + "%";time = setTimeout("load()",100);if (pc > 100) { clearTimeout(time); loaded() }}function loaded() {fim = new Date().getTime();dif = fim - ini;ld.style.display = 'none';page.style.display = '';}function Show() {if (txt.style.display == "none") { txt.style.display = "" }else { txt.style.display = "none" }}</script> <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%"> <tr> <td><div align="center"> <p><FONT COLOR="#00FF00"><B>文字区域</B></FONT></p></div></td></tr> </table></div></TD></TR></TBODY></TABLE></CENTER> 其实真正的有现实意义的进度条应该是用activex或java applethttp本身就不是面向持续连接的,事实上连yahoo的那个公文包也只给了一个gif的动画来给你一个感观的进度而已。 PHPmyadmin初装问题 PHP中$link=mysql_connect("localhost","root",""); MYSQL 编码问题。。 PHP页面传值的问题 404错误 java和php到底哪个好? 运行时发错,望高人指点,谢谢 请问PHP建立PDF那里有更多的中文字体下载? php 接受 backbone 传的值包括destroy 关于视频直播(websocket+php) 关于DIE关键字的用法 新年好,请问可否使用php作网上认证?
<?php
//by iwind [email protected]
set_time_limit("3600");
ob_end_clean();
for($i = 1;$i <= 300; $i++ ) echo(" ");
$file="jicheng.rar";//你要上传的东东
$obj="upload/website.rar";//目标文件,就是文件上传到哪里
$length="100";//进度条长度,可能不准备
$pimg="pro.gif";//进度条图片
$csize="10000";//每次拷贝的尺寸,单位字节$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"上传成功";?>
在 <body> 与 </body> 之间加入:<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=100% border=0 height="100%">
<TBODY> <TR> <TD>
<DIV id=ld> <CENTER>
<H1> Loading...</H1>
<TABLE width="50%">
<TBODY> <TR> <TD align=left>
<TABLE id=lpc bgColor=#FFCC00>
<TBODY> <TR> <TD> </TD></TR></TBODY>
</TABLE></TD></TR></TBODY></TABLE>
</CENTER></DIV><DIV id=page style="DISPLAY: none"> <script language=JavaScript>
ini = new Date().getTime();
var pc = 0;
load();function load() {
pc += 4;
lpc.style.width = pc + "%";
time = setTimeout("load()",100);
if (pc > 100) { clearTimeout(time); loaded() }
}
function loaded() {
fim = new Date().getTime();
dif = fim - ini;
ld.style.display = 'none';
page.style.display = '';
}
function Show() {
if (txt.style.display == "none") { txt.style.display = "" }
else { txt.style.display = "none" }
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr> <td>
<div align="center"> <p><FONT COLOR="#00FF00">
<B>文字区域</B></FONT></p></div></td></tr>
</table></div></TD></TR></TBODY></TABLE></CENTER>
http本身就不是面向持续连接的,
事实上连yahoo的那个公文包也只给了一个gif的动画来给你一个感观的进度而已。