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