php获取文件上传进度,PHP使用APC获取上传文件进度
今天發(fā)現(xiàn)使用PHP的APC也能獲取上傳文件的進(jìn)度。這篇文章就說下如何做。
安裝APC
首先安裝APC的方法和其他PHP模塊的方法沒什么兩樣,網(wǎng)上能找出好多
phpinfo可以看到APC的默認(rèn)配置有:
apc.rfc1867
看apc.rfc1867這個(gè)配置項(xiàng):
文檔說的是如果你上傳文件的時(shí)候,在POST中帶有APC_UPLOAD_PROGRESS字段,那么APC會(huì)自動(dòng)以這個(gè)值創(chuàng)造一個(gè)upload_key緩存
這個(gè)時(shí)候,用戶可以使用ajax再過來調(diào)用,就可以獲取到當(dāng)前文件上傳的狀態(tài)了
這個(gè)狀態(tài)包括:
文件大小
當(dāng)前已上傳文件大小
文件上傳速度(上傳結(jié)束后才有)
實(shí)驗(yàn):
1 開啟rfc1867配置項(xiàng)
apc.rfc1867=on
2 確認(rèn),phpinfo()中可以看到已經(jīng)打開
3 服務(wù)端上傳php代碼
確保能通過網(wǎng)絡(luò)訪問到頁面
4 服務(wù)端查看進(jìn)度php代碼
確保能通過網(wǎng)絡(luò)訪問到頁面
5 寫個(gè)簡(jiǎn)單的客戶端html
這里要注意的是,APC_UPLOAD_PROCESS 必須要放在上傳的file之前(這也是文檔中有寫到的),否則會(huì)出現(xiàn)warning,并且也無法得到process
6 上傳文件訪問apc.php
7 查看getprocess.php
下面的疑問就是是不是真有中間過渡狀態(tài)呢?
1 找個(gè)大文件,(20M+)
2 確認(rèn)下nginx+php對(duì)文件大小限制超過20M
3 開啟fidder做限速:
按照這篇文章說的:http://donchevp.blogspot.com/2009/11/limiting-your-internet-connection-speed.html
設(shè)置rule - customer - 設(shè)置這一段代碼
修改這個(gè)request-trickle-delay
然后開啟Simulate模式。
4 a.html頁面上傳這個(gè)20M文件
5 不斷刷新getprocess.php
可以看到current的進(jìn)度,而且可以看到?jīng)]有上傳完成的時(shí)候,rate字段是沒有的~~~so good~~
本文轉(zhuǎn)自軒脈刃博客園博客,原文鏈接:http://www.cnblogs.com/yjf512/p/3173457.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的php获取文件上传进度,PHP使用APC获取上传文件进度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不同MCU的大小端(endian)分类
- 下一篇: 苹果8p手机能开空调吗