使用PHP或RUBY中的进度条提取zip

时间:2011-07-14 23:32:13

标签: php ruby zip progress-bar extract

有没有办法调用一个调用php的ajax函数来提取文件并通过httpresponse发送进度所以我可以创建一个进度条?

我知道php不是一种多线程语言,所以我学习ruby并且我似乎有一些提取zip示例,但我不知道如何知道文件的进度,也许是一个新的线程? ??

所以任何解决方案或想法,无论是php还是ruby都非常受欢迎。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用ruby ProgressBar gem和net/http来执行此操作。

以下是演示代码:

url_base = ''   
url_path = ''     
@counter = 0  

Net::HTTP.start(url_base) do |http|  
  response = http.request_head(URI.escape(url_path))  
  puts (response['content-length'].to_i/(1024*1024)).to_s <<  'M'  
  pbar = ProgressBar.new("file name:", response['content-length'].to_i)  
  File.open("test.file", 'w') {|f|
    http.get(URI.escape(url_path)) do |str|  
    f.write str  
    @counter += str.length  
    pbar.set(@counter)  
 end  
}  
end  
pbar.finish  
puts "Done."