php+ajax文件上传进度条

找到一篇文章PHP AJAX File Upload Progress Meter Updates,介绍如何用php Pear:HTML_AJAX制作带有进度条的文件上传,下面是我测试上传时的示意图

ajax带进度条上传


代码分为以下部分:

demo.php – 上传过程处理

< ?php

include 'UploadProgressMeter.class.php';

$fileWidget = new UploadProgressMeter();

if ($fileWidget->uploadComplete()) {
        // 上传完毕的时候,从iframe发送一个js到主窗口表示一切ok
        echo $fileWidget->finalStatus();

        // 处理上传后的文件...

        exit;
}
?>

demoserver.php – ajax的服务端js,使用Pear:HTML_AJAX,直接调用UploadProgressMeterStatus类
[html]

< ?php echo $fileWidget->renderIncludeJs(); ?>[/html]

进度条的样式表
[css].progressBar {
position: relative;
padding: 2px;
width: 300px;
height: 40px;
font-size: 14px;
}
.progressBar .background {
border: solid 1px black;
width: 270px;
height: 20px;
}
.progressBar .bar {
position: relative;
background-color: blue;
width: 0px;
height: 20px;
}[/css]

表单部分
[html]

renderFormExtra(); ?>>
< ?php echo $fileWidget->renderHidden(); ?>

< ?php echo $fileWidget->render(); ?>
< ?php echo $fileWidget->renderProgressBar(); ?>

[/html]

demo下载 – 密码是www.ooso.net
作者的svn浏览

其它类似项目:
http://pdoru.from.ro/ – 要以patch的形式和php一起编译
http://www.ugia.cn/?p=54 – 以socket上传文件并显示进度条

作者: 发表于March 15, 2006 at 10:39 am

版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原始出处作者信息及此声明

Tags: ,,,

18 条评论 »

  1. volcano 于 2006-03-15 @ 10:43:13 留言

    这个进度只能表示正在上传,而上传了多少,体现不了

  2. Pirate 于 2006-03-26 @ 00:54:09 留言

    这样感觉没什么意义.
    Ajax和服务器的通讯要用户察觉有什么用呢?

  3. volcano 于 2006-03-26 @ 02:37:00 留言

    虽说没多大用处,但是某些人会觉得这样比较酷一点

  4. RainChen 于 2006-04-07 @ 12:25:31 留言

    既然都打包了,怎么不把完整的代码放进去(这样还加密,真是汗).原作者的版本控制也够乱的,下了几个版本都调试不成功,其他演示也没哪个能引起别人去使用的欲望,到是注释写得很标准,代码风格很OOP,外国的程序员还是比较敬业的.

  5. volcano 于 2006-04-13 @ 09:21:25 留言

    没有人要求我一定要服务上门吧?至于加密,是因为这服务器不是我的,防盗链无可厚非

  6. bandy sim 于 2006-09-15 @ 15:19:04 留言

    异步上传文件我很早就捣腾过,国外有几种探讨方案,但都不理想,一种采用perl后台语言的可以返回进度,而php不能返回进度;另外弄一个隐藏得表单甚至iframe,浏览器会显示正在打开网页的状态,比如IE上角的地球在转。总之,都不理想。gmail就没有用异步,可能说明问题。

  7. volcano 于 2006-09-16 @ 09:20:07 留言

    这里写的上传,并不能反应真实的进度,只能在上传成功之后给个上传完成的信息

  8. QQ群:7332577 于 2006-10-08 @ 01:02:57 留言

    QQ群:7332577 PHP+ajax学习!讨论!杜绝广告!

  9. 美播网 于 2006-10-19 @ 20:11:35 留言

    美播网实现了各位所说的文件异步上传,同时显示上传进度条,非常cool。不信,大家试试:

    美播网

  10. longbill 于 2007-06-21 @ 16:31:38 留言

    上传进度条用flash可以实现

    看这里
    http://longbill.cn/blog/index.php?id=68

  11. Frank 于 2007-12-27 @ 16:01:34 留言

    我用过,不错,是真的进度反映

  12. Frank 于 2007-12-27 @ 16:02:37 留言

    看看这个网站的视频上传
    http://www.cindoo.com

  13. eitrade 于 2008-09-25 @ 10:30:59 留言

    不错,刚好用上

  14. sdfsdf 于 2008-11-12 @ 20:09:36 留言

    flash 方式上传文件不能大于100M

  15. freeke 于 2009-06-23 @ 09:48:20 留言

    请教楼主,有没有类似于像优酷他们用户上传视频的那种上传方法,使用PHP来实现!有的话可以联系我啊

    223883921

  16. Volcano 于 2009-06-23 @ 22:57:22 留言

    你可以用YUI Uploader来完成类似的上传,见http://www.ooso.net/archives/405

  17. 一生有你101 于 2009-10-12 @ 11:14:29 留言

    lz
    能发一分可运行的代码给我吗,视频上传的,我下去不了
    email: zgycsmb@yahoo.com.cn

  18. Volcano 于 2009-10-12 @ 14:56:13 留言

    试试这个吧:

    http://swfupload.org/

    一个JavaScript/Flash的文件上传类库

RSS 为此帖反馈评论 · 反向跟踪 网站

留条评论