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 に答える