今天发现使用PHP的APC也能获取上传文件的进度。这篇文章就说下如何做。

安装APC

首先安装APC的方法和其他PHP模块的方法没什么两样,网上能找出好多

phpinfo可以看到APC的默认配置有:

apc.rfc1867

看apc.rfc1867这个配置项:

文档说的是如果你上传文件的时候,在POST中带有APC_UPLOAD_PROGRESS字段,那么APC会自动以这个值创造一个upload_key缓存

这个时候,用户可以使用ajax再过来调用,就可以获取到当前文件上传的状态了

这个状态包括:

文件大小

当前已上传文件大小

文件上传速度(上传结束后才有)

实验:

1 开启rfc1867配置项

apc.rfc1867=on

2 确认,phpinfo()中可以看到已经打开

3 服务端上传php代码

确保能通过网络访问到页面

4 服务端查看进度php代码

确保能通过网络访问到页面

5 写个简单的客户端html

这里要注意的是,APC_UPLOAD_PROCESS 必须要放在上传的file之前(这也是文档中有写到的),否则会出现warning,并且也无法得到process

6 上传文件访问apc.php

7 查看getprocess.php

下面的疑问就是是不是真有中间过渡状态呢?

1 找个大文件,(20M+)

2 确认下nginx+php对文件大小限制超过20M

3 开启fidder做限速:

按照这篇文章说的:http://donchevp.blogspot.com/2009/11/limiting-your-internet-connection-speed.html

设置rule - customer - 设置这一段代码

修改这个request-trickle-delay

然后开启Simulate模式。

4 a.html页面上传这个20M文件

5 不断刷新getprocess.php

可以看到current的进度,而且可以看到没有上传完成的时候,rate字段是没有的~~~so good~~

本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3173457.html,如需转载请自行联系原作者

php获取文件上传进度,PHP使用APC获取上传文件进度相关推荐

  1. [转]Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]

    转自:http://www.cnblogs.com/stg609/archive/2008/08/03/1259206.html 接着上一篇讲 3.4 读取剩余的请求       前面我们已经提到过R ...

  2. Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]

        接着上一篇讲 3.4 读取剩余的请求       前面我们已经提到过ReadEntityBody (Byte[] buffer, Int32 size)方法,该方法可以用来读取客户端的请求数据 ...

  3. uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)

    前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...

  4. php flash上传进度条,PHP_PHP+FLASH实现上传文件进度条相关文件 下载,PHP之所以很难实现上传进度条 - phpStudy...

    PHP+FLASH实现上传文件进度条相关文件 下载 PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候,要等到文件全部送到服务器之后,才执行相应的php文件.在这之前,文件数据保存在一个 ...

  5. JS - 文件上传组件WebUploader使用详解1(带进度的文件上传

    一.基本介绍 1,什么是 WebUploader? WebUploader 是由百度公司团队开发的一个以 HTML5 为主,FLASH 为辅的现代文件上传组件. 官网地址:http://fex.bai ...

  6. java jsch实现sftp文件上传,并且控制上传的速度,同时监控上传进度

    工作中,有些环境带宽有限,比如说专线,通常带宽比较小,又不便宜,当业务量大的时间,如果在专线上还要传输文件的话,往往在文件传输的时间会导致带宽占慢,就有可能导致时实交易进不来,有可能影响交易,今天贴一 ...

  7. php处理form多文件上传,ajax利用FormData、FileReader实现多文件上传php获取

    前台代码(注意,不需要用到form标签): a. html部分: b. js部分: c. 完整代码: function loadDoc(file,data,async=true){ if(window ...

  8. Spring MVC-09循序渐进之文件上传(基于Servlet3.0+Html5客户端上传文件)

    示例 测试 源码 虽然Servlet3.0+中上传文件,我们在服务端编程即可非常容易,但是用户体验却不是非常友好.单独的一个HTML表单并不能显示进度条,或者显示已经成功上传的文件数量. 不管是Jav ...

  9. 大文件分片上传前端框架_无插件实现大文件分片上传,断点续传

    文件上传.gif 1. 简介: 本篇文章基于实际项目的开发,将介绍项目中关于大文件分片上传.文件验证.断点续传.手动重试上传等需求的使用场景及实现: 2. 项目需求 在一个音视频的添加中,既要有音视频 ...

最新文章

  1. Reddit年度盘点:那些2019年最佳机器学习项目
  2. mysql 分组取最新的一条记录(整条记录)
  3. wxWidgets:wxColourDatabase类用法
  4. python基础数据类型一(元祖)
  5. matlab常用误差分析绘图函数
  6. Flex3 CRUD 与Java后台交互 完整Demo
  7. Loj #2568. 「APIO2016」烟花表演
  8. nginx 增加stream_realip_module模块
  9. JSOUP爬虫常见问题解决方法
  10. 新浪igame连连看游戏截图
  11. 推荐装机软件更新下载(2006.11.7更新)
  12. ubuntu 14.04 安装minidwep-gtk
  13. Verilog编程网站学习——门电路、组合电路、时序电路
  14. Tuxera NTFS2023Mac读写ntfs磁盘工具
  15. 7-10 愿天下有情人都是失散多年的兄妹 (25分)
  16. PDF怎么合并?分享几种非常简单的合并方法
  17. 编程术语晦涩_晦涩的编程语言的乐趣
  18. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C题
  19. 彻底卸载JDK的-并只依赖配置环境安装JDK(不依赖注册表)-解决Error opening registry key‘software\Javasoft\Java Runti问题
  20. eclipse maven 搭建 SSM(Spring+SpringMVC+MyBatis)开发环境 和 MyBatis 自动生成的 maven 插件配置

热门文章

  1. SAP ABAP SM50的另类用途 - ABAP工作进程对数据库表读取操作的检测
  2. how is SAP OData metadata read from CDS view via SADL
  3. 如何使用SAP云平台的Notification服务给Android应用推送通知消息
  4. SAP UI5 jQuery.sap.includeStyleSheet
  5. Launchpad services provided in HANA XS in multitenant
  6. 如何给SAP云平台的账号分配Leonardo机器学习服务的实例
  7. SAP云平台cf push命令报错的解决方法
  8. 如何在Marketing Cloud Launchpad里创建新的tile
  9. SAP OData的CSRF token在ABAP Netweaver服务器上是怎么生成的
  10. ubuntu上的wordpress文章的本地存储位置