2011-09-22 119 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方法似乎采取几乎没有时间来完成。

作为一种变通方法,您可以关闭并重新打开在特定字节或文件的时间间隔存档。这实际上减慢荏苒了一个小的过程,但对我来说,这是可以接受的,因为可见的进度条不只是没有指示正在发生的事情在等待更好。