4

在 Rails 3 AttachmentsController 中,我有以下内容:

  def show
    attachment = Attachment.find_by_id(params[:id])
    redirect_to(attachment.authenticated_url())
  end

其中 authenticated_url 只是 S3 访问文件的 URL。

问题是文件总是由浏览器下载。我想要发生的是,如果文件是图像/pdf,浏览器可以呈现的东西,在浏览器中显示文件并且只下载非浏览器友好的文件。

你以前见过这个吗?关于从哪里开始的任何想法?

谢谢

4

3 回答 3

6

send_file 也可用于远程 url

file = open("http://cdn2.example.com/somefile.pdf")
send_file(file, :filename => "example.pdf", :type => "application/pdf" , :disposition => "attachment")

这里将下载example.pdf。如果你想在浏览器本身中打开 pdf 使用这个

file = open("http://cdn2.example.com/somefile.pdf")
send_file(file, :filename => "example.pdf", :type => "application/pdf" , :disposition => "inline")
于 2012-11-14T18:25:12.597 回答
0
redirect_to @attachment.url

我也在使用回形针,它在浏览器中显示图片。你必须做一些与此不同的事情吗?

于 2012-11-14T19:04:07.827 回答
0

我想你会想要研究 rails send_file 方法。

1) http://apidock.com/rails/ActionController/DataStreaming/send_file

:disposition 选项可让您决定是下载文件还是内联显示文件。我在我的 Rails 应用程序中使用它来让用户下载 mp3 文件。

希望这可以帮助。

于 2012-11-14T18:06:33.943 回答