点击下载文件 - Ruby on Rails

agu*_*ren 6 ruby-on-rails attachment download paperclip

我的应用程序使用Rails 2后端,Heroku用于托管,Paperclip用于文件上传,Amazon S3用于文件存储.

现在用户可以使用paperclip + s3上传文件 - 这完美无瑕.上传后,其仪表板上会出现一个图标,链接到文件位置(在s3存储桶中).单击该图标时,浏览器将在新窗口中打开该文件(对于大多数文件类型 - PDF,MP3,img等).我想要在用户点击文件图标(如Gmail附件)时自动下载文件,而不是打开.该解决方案应该能够适用于任何文件类型和跨浏览器.

有没有帮助在rails中执行此操作,还是需要javascript?我真的被困在这个上,所以任何指向正确方向的东西都会非常感激.谢谢!

小智 10

请尝试以下方法:

class Test < ActiveRecord::Base

  has_attached_file :testfile, 
    :storage => :s3,
    # All your S3 config
    :s3_headers => {"Content-Disposition" => "attachment"}

end
Run Code Online (Sandbox Code Playgroud)

这应该告诉Paperclip Gem将"Content-Disposition"标题设置为新上传文件的值"attachment".

请注意,您必须手动编辑已上载的文件,例如使用Cyber​​duck或其他FTP客户端.