PHP有办法实现文件上传进度条吗?
因为我有一些视频文件上传,如果没有进度条会很不好。 问题点数:20、回复次数:16Top
1 楼guestdaocao(稻草人)回复于 2006-05-28 10:17:08 得分 0
有的,用php的socket实现,具体方法和实现如下:
http://www.ugia.cn/?p=54Top
2 楼bd_tf(冰冻的天份)回复于 2006-05-30 01:43:10 得分 0
test.php
<?php
set_time_limit(0);
ob_end_clean();
include'progress_bar.php';
$maxlen=10;
$bar=new progress_bar;
$bar->Init();
for($i=1;$i<=$maxlen;$i++){
sleep(1);
$bar->set_percent($i,$maxlen);
flush();
}
?>
---------------------------------------------------
进度条类progress_bar.php
<?php
class progress_bar
{
var $name;
var $percent;
var $width;
function Init($name = 'pbar',$percent = 1,$width = 277,$auto_create = TRUE)
{
$this->name = $name;
$this->percent = $percent;
$this->width = $width;
if($auto_create)
{
$this->create();
}
}
function create()
{
?>
<div align="center">
<center>
<table height="8" name="<? echo('table_' . $this->name);?>" border="0" style="border:1px solid #545454" cellpadding="0" cellspacing="0" width="<? echo($this->width);?>">
<tr>
<td name="<? echo('cell_' . $this->name);?>" align="left" width="<? echo($this->width);?>"><img name="<? echo($this->name)?>" border="0" src="http://www.eyhc.net/cache/img/bar.gif" width="<? echo(($percent * .01) * $this->width);?>" height="8"></td>
</tr>
</table>
</center>
</div>
<?
}
function set_percent($cur_amount,$max_amount)
{
$this->percent = ($cur_amount / $max_amount) * 100;
echo('<script>document.images.' . $this->name . '.width = ' . ($this->percent / 100) * $this->width . '</script>');
}
}
?>Top
3 楼iasky(iasky)回复于 2006-05-30 11:18:49 得分 0
markTop
4 楼helloyou0(你好!)回复于 2006-05-30 13:29:44 得分 0
上面那个需要服务器有其它端口开放,一些共享空间无法使用
这里也可以看一下,用perl实现上传部分,其它都用php
http://www.raditha.com/megaupload/
目前在用它
www.sf.net还有一些,可以看看
Top
5 楼xuzuning(唠叨)回复于 2006-05-30 14:42:20 得分 0
不可以!
asp、perl可以轻松实现
php代劳的太多了
换句话说,如果php不直接支持文件上传的话。也可以很轻松的实现
不知道你喜欢什么样的处理文件上传的方式
1、判断上传的文件的有效性后用拷贝函数复制,但失去建造“进度条”的可能
2、自己书写代码分析http协议头,从中过滤出上传文件的信息,然后写入到文件。在此过程中嵌入建造“进度条”的代码
Top
6 楼dreamTown(象风一样自由)回复于 2006-06-26 15:55:41 得分 0
mark
Top
7 楼zjmood(超越无极限)回复于 2006-06-26 17:10:19 得分 0
markTop
8 楼ashchen(老陳)回复于 2006-06-26 17:32:13 得分 0
在网上超过10M的内容用Http上传意义就不大了,实际上2M的东西都不想用网页传
内网可以玩玩Top
9 楼Gdj(陈水.智商只有129.非卖品)回复于 2006-06-26 17:51:57 得分 0
超过500k的都不想了。http上传是要占着apache一个进程的。真是浪费。Top
10 楼mouzhi(谋之)回复于 2006-06-26 17:56:29 得分 0
收藏Top
11 楼lzkd(浪子快刀)回复于 2006-06-26 18:24:20 得分 0
为什么老是有人问关于网页上传的东西呢?就不会换个别的方法解决.....不明白中..Top
12 楼tianyaxiao()回复于 2006-06-27 10:00:06 得分 0
雅虎的解决方法是做一个假进度条,其实看浏览器状态栏的进度条不一样吗?
Top
13 楼gu1dai(异域苍穹.百年飞行)回复于 2006-06-27 10:14:09 得分 0
假进度条
呵呵。很多的都是假进度。Top
14 楼jiangtao088(不够专业)回复于 2006-06-27 10:18:41 得分 0
markTop
15 楼postcode()回复于 2006-06-27 14:52:48 得分 0
markTop
16 楼xwsn(孤帆远影)回复于 2006-06-29 17:25:09 得分 0
jihaoTop




