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會(huì)自動(dòng)安裝到/usr/local/php/lib/php/extensions/XXXXXXXXX/(這個(gè)路徑需要根據(jù)自己的實(shí)際情況查找)下。
到php.ini中加載就可以了:
注意以上這個(gè)路徑是我這邊設(shè)定的,你配置的時(shí)候要根據(jù)你自身的配置去設(shè)置路徑
上傳進(jìn)度支持(Upload progress in sessions)
在PHP.ini將以下參數(shù)前面的 “ ;”分號(hào)去掉
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"
文件上傳進(jìn)度反饋, 這個(gè)需求在當(dāng)前是越來越普遍, 比如大附件郵件. 在PHP5.5以前, 我們可以通過APC提供的功能來實(shí)現(xiàn). 或者使用PECL擴(kuò)展uploadprogress來實(shí)現(xiàn).
雖然說, 它們能很好的解決現(xiàn)在的問題, 但是也有很明顯的不足:
- 1. 他們都需要額外安裝
- 2. 它們都使用本地機(jī)制來存儲(chǔ)這些信息, APC使用共享內(nèi)存, 而uploadprogress使用文件系統(tǒng)(不考慮NFS), 這在多臺(tái)前端機(jī)的時(shí)候會(huì)造成麻煩.
從PHP的角度來說, 最好的儲(chǔ)存這些信息的地方應(yīng)該是SESSION, 首先它是PHP原生支持的機(jī)制. 其次, 它可以被配置到存放到任何地方(支持多機(jī)共享).
正因?yàn)榇? Arnaud Le Blanc提出了針對(duì)Session報(bào)告上傳進(jìn)度的RFC, 并且現(xiàn)在實(shí)現(xiàn)也已經(jīng)包含在了PHP5.5的主干中.