Распакуйте zip с индикатором выполнения в PHP или RUBY - PullRequest
1 голос
/ 15 июля 2011

есть ли способ вызвать функцию ajax, которая вызывает php, который извлекает файл и отправляет прогресс через httpresponse, чтобы я мог сделать индикатор выполнения?

Я знаю, что php не является многопоточным языком, поэтому яЯ изучаю ruby, и я, кажется, несколько примеров zip, но понятия не имею, как я могу узнать, как продвигается файл, может быть, новая тема ???

Так что любое решение или идея, php или ruby, действительно приветствуется.

Большое спасибо

1 Ответ

0 голосов
/ 04 марта 2014

Вы можете использовать рубиновый 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."  
...