开发者社区> 问答> 正文

php远程下载文件是如编写进度条,报错

php打开读取远程文件时如何编写进度条

展开
收起
一枚小鲜肉帅哥 2020-06-20 20:04:52 1143 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

    一般进度条都是假的,根据读取数据大小百分比计算。 用ajax吧######ajax也没办法得到实时进度数据长度呀.. php都是读取完数据才做下一步骤...######

    比较新的php版本支持这个,你可以搜下资料,好像是version>5.3吧 当然是可以的,只是你不会而已。必须要考虑使用PHP多进程方式实现,因为php在请求未结束时,一直会挂起浏览器。

    1.当在页面上点击下载命令时,使用ajax激活一个PHP进程。这个PHP进程要做的工作:a.取得目标文件总大小,并作记录(文件、数据库均可)

    b. 转入后台运行,使用fastcgi_finish_request实现,关键!,立即反馈给客户端。

    c. 循环下载文件,在每个循环中,更新已经下载的字节数。


    当页面的ajax请求返回时,说明下载任务已经开始运行。

    再作一个ajax, 不断地读取前一个进程的下载信息,更新页面进度条即可。

    2020-06-20 20:06:14
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载