2011-07-14 68 views
1

有沒有辦法調用一個調用php來提取文件並通過httpresponse發送進度的ajax函數,這樣我就可以創建一個進度條了?在PHP或RUBY中使用進度條提取壓縮文件

我知道PHP不是多線程語言,所以我正在學習ruby,我似乎有些提取zip例子,但不知道如何知道文件的進度,也許是一個新的線程?

因此,任何解決方案或想法無論是PHP或紅寶石是真的歡迎。

非常感謝您

回答

0

您可以使用紅寶石進度寶石和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."