安装PHP组件uploadprogress
技术支持服务电话:15308000360 【7x24提供运维服务,解决各类系统/软硬件疑难技术问题】
Your server is capable of displaying file upload progress, but does not have the required libraries. It is recommended to install the PECL uploadprogress library (preferred) or to install APC
wget http://pecl.php.net/get/uploadprogress-1.0.3.1.tgz tar zxvf uploadprogress-1.0.3.1.tgz cd uploadprogress-1.0.3.1 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make installuploadprogress.so会自动安装到/usr/local/php/lib/php/extensions/XXXXXXXXX/(这个路径需要根据自己的实际情况查找)下。
到php.ini中加载就可以了:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"
注意以上这个路径是我这边设定的,你配置的时候要根据你自身的配置去设置路径
注意以上这个路径是我这边设定的,你配置的时候要根据你自身的配置去设置路径
extension = "uploadprogress.so"
上传进度支持(Upload progress in sessions)
在PHP.ini将以下参数前面的 “ ;”分号去掉
session.upload_progress.enabled = On
session.upload_progress.cleanup = On
session.upload_progress.prefix = "upload_progress_"
session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
session.upload_progress.freq = "1%"
session.upload_progress.min_freq = "1"
session.save_path = "/tmp"
文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.5以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现.
虽然说, 它们能很好的解决现在的问题, 但是也有很明显的不足:
- 1. 他们都需要额外安装
- 2. 它们都使用本地机制来存储这些信息, APC使用共享内存, 而uploadprogress使用文件系统(不考虑NFS), 这在多台前端机的时候会造成麻烦.
从PHP的角度来说, 最好的储存这些信息的地方应该是SESSION, 首先它是PHP原生支持的机制. 其次, 它可以被配置到存放到任何地方(支持多机共享).
正因为此, Arnaud Le Blanc提出了针对Session报告上传进度的RFC, 并且现在实现也已经包含在了PHP5.5的主干中.