Paperclip Force下载

时间:2013-01-18 19:21:12

标签: ruby-on-rails ruby-on-rails-3 paperclip

希望任何人都可以提供帮助!

利用Paperclip将文件上传到应用程序,这是我需要涵盖的两件事。

1)链接到File for Download的最佳方式是什么,我目前正在链接到公共文件夹,但它不是最好的选项,因为它显示了我不想要的URL。想想也许button_to调用不确定它是否已经构建到Paperclip中。选项。

2)当完成上述操作后,浏览器需要强制下载而不仅仅是打开文件,或至少让用户打开或保存标准的firefox选项。

请帮助感谢米勒!!!

2 个答案:

答案 0 :(得分:12)

我会回答Nº2的问题 假设你的模型叫做gallery 在您的图库控制器中,您将添加下载方法:

def download
  @gallery= Gallery.find(params[:gallery_id])

  send_file @gallery.gallery_picture.path,
              :filename => @gallery.gallery_picture_file_name,
              :type => @gallery.gallery_picture_content_type,
              :disposition => 'attachment'
end

现在从你的路线你将调用根到这个方法:

match 'gallery/:id' => 'gallery#download', :as => :download

在您的观点中:

- @galleries.each do |gallery|     
  = link_to 'Download Picture', download_path(gallery.id)

我不在家,我无法测试此代码,但您可以使用与您相同的问题访问我所做的那些问题。如果它能解决您的问题,请告诉我。

Rails send_file multiple styles from Paperclip, how can I avoid code repetition?
Rails 3.0 associated model with download 'save to' image

答案 1 :(得分:0)

在rails中,send_file带有用户设置的参数是一个安全漏洞。 More information

在rails 4中,你不能只写match,你必须在末尾添加, via: [:get, :post]More information