我有一个 - 希望很小的问题。
我使用Ruby on Rails和Paperclip来处理文件上传。 现在我想自动将Content-Disposition标头设置为“attachment”,这样当用户点击链接时,文件就会被下载而不是直接显示在浏览器中。
我找到了适用于Amazon S3的以下解决方案: Download file on click - Ruby on Rails
但我不使用S3。 有人可以帮忙吗?
提前致谢, /拉塞
答案 0 :(得分:0)
如果您使用文件存储,Paperclip会使用RAILS_ROOT/public/system
选项将文件存储在:path
文件夹(configurable)中。
/public
文件夹中的文件直接作为静态文件提供。 “Rails / Rack永远不会看到对您的公用文件夹的请求”(到quote cwninja)。
/public
文件夹中的文件由运行此应用程序的Web服务器提供服务(例如开发中的Apache或WEBrick)。并且Web服务器负责在提供文件时设置标头。因此,您应该配置网络服务器,为您的附件设置正确的标题。
另一个选择是构建一个控制器或一些Rack中间件来为您的回形针附件提供服务。在那里你可以做response.headers['Content-Disposition'] = 'attachment'
。
第三个选项是使用S3,然后您可以在S3对象中存储标题(如Content-Disposition
)。 S3然后使用这些标题提供回形针附件。
答案 1 :(得分:0)
根据this link,您可以执行以下操作:
<Files *.xls> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
<Files *.eps> ForceType application/octet-stream Header set Content-Disposition attachment </Files>