PHP的APC模塊實現上傳進度條_第1頁
PHP的APC模塊實現上傳進度條_第2頁
PHP的APC模塊實現上傳進度條_第3頁
PHP的APC模塊實現上傳進度條_第4頁
PHP的APC模塊實現上傳進度條_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——PHP的APC模塊實現上傳進度條PHP的APC模塊實現上傳進度條

介紹了使用PHP的APC模塊制作上傳進度條,需要的摯友可以參考下。跟隨我去看看吧!

APC模塊,它的全稱是AlternativePHPCache。APC可以將全體PHP代碼會被緩存起來,另外它可供給確定的內存緩存功能.但是這個功能并不是特別完備,有報告說假設頻繁使用APC緩存的寫入功能,會導致不成預料的錯誤.假設想使用這個功能,可以看看apc_fetch,apc_store等幾個與apc緩存相關的函數。

值得欣喜的是從5.2開頭APC參與了APC_UPLOAD_PROGRESS,解決了困擾大家已久的`進度條問題。并且它把原來的上傳時把臨時文件全部緩存到內存改成了當臨時文件達成設定值時就自動保存到硬盤,有效地改善了內存利用狀況。

它的作用原理是在上傳時候賦予每個上傳一個唯一的ID,當PHP腳本收到一個上傳文件時,解釋程序將自動檢查$_POST數組中名為APC_UPLOAD_PROGRESS的暗藏字段,它將成為緩存變量,存儲關于上傳的信息,這樣腳本就可以通過上傳的ID來訪問上傳文件的狀態信息。

!以下為上傳表單

formenctype=multipart/form-dataid=upload_formaction=method=POST

inputtype=hiddenname=APC_UPLOAD_PROGRESSid=progress_keyvalue=upid/

視頻標題:inputtype=textid=subjectname=subject/

視頻說明:inputtype=textid=contentname=content/

視頻TAG以逗號分割inputtype=textid=tagname=tags/

inputtype=fileid=upfilename=upfile/

inputtype=submitid=filesubmitvalue=上傳onclick=startProgressupid;returntrue;/

!留神:startProgressupid中的參數是你從php中調配的唯一上傳參數

/form

!以下為上傳進度條

pid=upstatusstyle=width:500px;height:30px;border:1pxsolid##ffffde;color:#796140;

/p

pid=progressouterstyle=width:500px;height:20px;border:3pxsolid#de7e00;display:none;

pid=progressinnerstyle=position:relative;height:20px;color:#796140;background-color:#f6d095;width:0%;/p

/p

最主要的就是那個APC_UPLOAD_PROGRESS的暗藏域,有了它腳本才能去訪問目前上傳文件的狀態,另外加一個顯示上傳狀態的p就好了。

下面是處理Ajax的腳本,用了Jquery框架,json傳遞消息。

functiongetProgressupid

varurl=$siteurlepadmin/upprocess;

$.getJSON

url,

progress_key:upid,

functionjson

$#progressinner.widthjson.per+%;

$#upstatus.html文件大小:+json.total+KB+已上傳:+json.current+KB;

ifjson.per100

setTimeoutfunction

getProgressupid;

,10;

else

$#upstatus.html視頻上傳完成,正在處理數據,請稍后;

functionstartProgressupid

$#progressouter.cssdisplay:block;

setTimeoutfunction

getProgressupid;

,100;

再下來就是讀取上傳狀態的PHP代碼了,至于上傳文件的處理可以按照平常自己的來寫。

//上傳文件操作函數,可按照自己的需要編寫

functionupflvAction

if$_SERVER[REQUEST_METHOD]==POST

$subject=trim$this-f-filter$this-_request-getPostsubject;

$content=trim$this-f-filter$this-_request-getPostcontent;

Zend_Loader::loadClassCustom_FlvOp;

$flv=newCustom_FlvOp;

$flv-uploadFlvupfile,$subject,$content;

//這就是讀取上傳狀態的函數了~~

functionupprocessAction

ifisset$_GET[progress_key]

$status=apc_fetchupload_.$_GET[progress_key];

$json=array

per=$status[current]/$status[total]*100,

total=round$status[total]/1024,

current=round$status[current]/1024,

;

require_onceZ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論