我必须提供一些文件供用户直接下载。但如果它们是一些常见类型(如.mp3,.pdf),则客户端浏览器通常会尝试直接显示它们。这不是隐含的行为。我需要一些不显示文件的辅助方法,但会打开“另存为”对话窗口。
像
这样的东西= link_to_save_as "Download file", @resource.url
Rails中是否有一些现成的辅助方法?
如果没有,是否有一些宝石提供该功能?
如果没有,是否可以自己实现(如果浏览器不以某种方式禁止此操作)?
答案 0 :(得分:2)
您可能希望将send_file
添加到控制器操作中。请在此处查看docs。
可能类似于:
def download_file(filename)
# You obviously need some restrictions on what can be requested
send_file '/path/to.mp3', :disposition => 'attachment'
end