2011-09-22 95 views
0

我已經使用了這個,但沒有找到任何解決方案 - 有沒有一種方法來創建一個progessbar在PHP中添加/解壓文件到zip文件? 我可以通過AJAX請求獲得某種狀態消息,並更新進度條嗎?PHP zip存檔進度條

謝謝。

+0

你見過這樣的:HTTP://discussion.dreamhost。COM /線程126666.html – Johan

回答

1

我正試圖在此刻做同樣的事情;它主要是*完整的(*參見下面的問題部分)。

我使用的基本概念是有2個文件/程序:

  1. 調度器(開始任務,並且可以調用以獲取更新)
  2. 任務(實際完成荏苒的任務)

調度程序將:

  1. 創建UNI闕更新令牌並保存到緩存(APC)
  2. 呼叫使用curl_multi_exec這是異步任務頁面,通過update_token
  3. 返回JSON格式的令牌 或
  4. 返回的APC的update_token下的內容(我的情況下,這是一個簡單的狀態數組)作爲JSON

任務將:

  1. 更新的APC與狀態,使用更新令牌
  2. 做實際工作:)

客戶端

你需要一些JavaScript調用調度程序,獲得令牌的回報,然後調用調度程序傳遞update_token以獲取更新,然後使用這些返回的值更新HTML。

**潛在隱患**

會話可能會成爲問題。如果你有同樣的會議上,你會發現你的瀏覽器(或這是Apache的?)等待會話返回別人之前完成第一次請求。這就是我存儲在APC中的原因。

當前問題

與ZipArchive類的問題是,它似乎在所有繁重的工作 - > close()方法,而addFile方法似乎採取幾乎沒有時間來完成。

作爲一種變通方法,您可以關閉並重新打開在特定字節或文件的時間間隔存檔。這實際上減慢荏苒了一個小的過程,但對我來說,這是可以接受的,因爲可見的進度條不只是沒有指示正在發生的事情在等待更好。