2

我有一个(希望很小)的问题。

我正在使用 Ruby on Rails 和 Paperclip 来处理文件上传。现在我想自动将 Content-Disposition 标头设置为“附件”,以便当用户单击链接时,文件被下载而不是直接显示在浏览器中。

我为 Amazon S3 找到了以下解决方案: 点击下载文件 - Ruby on Rails

但我不使用S3。有人可以帮忙吗?

提前致谢,/Lasse

4

2 回答 2

0

如果您使用文件存储,Paperclip 将文件存储在文件RAILS_ROOT/public/system夹中(使用该选项进行配置)。:path

文件/public夹中的文件直接作为静态文件提供。“Rails/Rack 永远不会看到对您的公用文件夹的请求”(引用 cwninja的话)。

文件/public夹中的文件由运行此应用程序的网络服务器提供服务(例如开发中的 Apache 或 WEBrick)。网络服务器负责在提供文件时设置标头。所以你应该配置网络服务器来为你的附件设置正确的标题。

另一种选择是构建一个控制器或一些 Rack 中间件来为您的回形针附件提供服务。在那里你可以做类似的事情response.headers['Content-Disposition'] = 'attachment'

第三个选项是使用 S3,然后您可以Content-Disposition在 S3 对象中存储标头(如 )。然后,S3 使用这些标题提供回形针附件。

于 2012-08-29T19:58:28.423 回答
0

根据此链接,您可以执行以下操作:

<Files *.xls> ForceType application/octet-stream Header set Content-Disposition attachment </Files> 
<Files *.eps> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
于 2012-11-08T15:23:25.173 回答