PHP显示上传进度的3种途径

近日看到 Ugia 的 upu 终于发布了,上传时候显示进度的效果得以实现,但是实现方式确不到好,需要上传的时候临时打开一个 socket 端口,更多正规的服务器都是生活在防火墙后面的,让客户端直接链接他们新开的端口是不现实的。通常除了这种方式外,还有2种办法可以实现PHP显示上传进度:

第一种是直接修改PHP的source code,使得在接收上传文件的时候定期将上传进度写入文件,session,或其它共享存储中,优点是效率最高,难点在于需要针对各个版本的PHP进行修改,还需要编译,调试不便。

第二种,是用其他语言实现其中一部分功能,如perl实现的cgi,因为在上传初始阶段apache就会将权限交给perl,而perl会交给cgi脚本,这时,你写的这个cgi就可以处理上传进度供客户端回显了,难点在于需要在2种语言种共享数据,缺点是cgi效率不高,当然可以用fastcgi,这年头写fastcgi的不多了,优点当然是兼容性最好。

第三中,就是UPU的这种方式,直接让 PHP 脚本监听 Socket 端口,缺点上面说了,就是无法用在防火墙后。

TOM的网络U盘已经有一部分用户可以看到上传进度的显示了,未来也许所以用户都可以看到吧,也许始终只会对一部分用户开放。

BTW,Ugia的代码质量真的很棒!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值