2010-05-19 49 views
0

終於找到了如何實現這個!在Ruby on Rails中恢復文件下載

原來它是爲實現xsendfile和設置簡單頭參數接受-範圍

閱讀下面

(順便說一下我的回答,在塊引用下面我寫了一個常見的錯誤新手 - 像我做了 - 做我們傾向於認爲它應該被人工編程)

URL必須是這樣的: mysite.com/get_file?file_point=100 - > 這將字節讀100

  1. 得到的參數(在我們的例子file_point參數)偏移
  2. 瞭解文件的大小(File.size)
  3. 讀取文件從偏移量長度(PHP FSEEK等效)
  4. 使用send_file發送文件

我不知道如何在上面的步驟中使用Ruby 中的第3步。

回答

1

這是我怎麼做的:

response.header["Accept-Ranges"] = "bytes" 
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true 

我問我們的服務器傢伙成立mod_xsendfile,我不知道如何設置它自己。

教程這裏:http://www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/

閱讀有關內容長度這裏:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

關於流媒體可以在這裏找到:http://api.rubyonrails.org/classes/ActionController/Streaming.html