###Railsでのpdfダウンロード
railsを使ってpdfをインポート、ダウンロード機能を実装しています。
インポート機能に関してはcarrierwaveを使い実装しています。(完了済み)
しかしpdfダウンロードに関してうまく行きません。
レスポンスでは謎の文字列が羅列されるだけで、ファイル自体はダウンロードできていません。
↓
ーーーーー
endobj 4 0 obj << /Pages 12 0 R /Type /Catalog >> endobj 5 0 obj << /Filter /FlateDecode /S 36 /Length 48 >> stream x�c```e``Z���pe31B���3��{���0j� endstream endobj 6 0 obj << /Contents 7 0 R /MediaBox [ 0 0 596 843 ] /Parent 12 0 R /Resources << /ExtGState << /G0 13 0 R >> /Font << /F0 14 0 R >> /ProcSets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Type /Page >> endobj 7 0 obj << /Filter /FlateDecode /Length 192 >> stream x��O� 1��+r�&mӴ ݳR�|�������.��I�@��t&)�[ ������p6�C2��T��]W}�75ص0��4-��Q3% r~�;���`�B'�#z���\�l(��YW�r64���tF��<��e �j�E�,,o!�$K�.I�#VA�w�'�˯Se1{�2п2��'�T�endstream endobj 8 0 obj << /Filter /FlateDecode /Length1 29928 /Length 12690 >> stream x��}y|T��ou����d���Lf�$$!�d ��-$��dH�13!�� pQT��pw��Ȣxūz�&d^u�3�@���~��!��TuwuwuUuu�,��$H�VZj����
ーーーーー
解決策を知っている方、または、この可能性では?というのがあれば、教えていただきたいですm(_ _)m
追加事項
文字が羅列されているview(一時度downloadアクションにとばした)で、リロードするとダウンロードします。
なぜでしょうか。。。
###発生している問題・エラーメッセージ
コントローラー
ruby
1# http://localhost:3000/hoge/download?id=3 2# pdfカラムがある、そこにアップロードしたものを保存している 3def download 4 5 @hoge = Hoge.find(params[:id]) 6 file_path = @hoge.pdf.current_path 7 send_file(file_path, filename: "aaa", length: File::stat(file_path).size, type: "application/pdf") 8 9end
binding.pryで実行を止めた状態でコンソールで
send_file(file_path, filename: "aaa", length: File::stat(file_path).size, type: "application/pdf")
を打ち込むと
pry(#<HogeController>)> send_file(file_path, :filename => "aaa", :length => File::stat(file_path).size, :disposition => 'inline') Sent file /Users/hoge/hoge2/hoge3/public/uploads/hoge4/pdf/3/pdf_hoge222.pdf (0.1ms) => #<ActionDispatch::Response::FileBody:0x007fb403b386e8 @to_path= "/Users/hoge/hoge2/hoge3/public/uploads/hoge4/pdf/3/pdf_hoge222.pdf ">
というふうに表示されます。
###試したこと
https://joppot.info/2014/06/05/1525
http://qiita.com/akkun_choi/items/64080a8e17930879b4da
###補足情報(言語/FW/ツール等のバージョンなど)
Uploaderです
ruby
1class PdfUploader < CarrierWave::Uploader::Base 2 include CarrierWave::RMagick 3 storage :file 4 def store_dir 5 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 6 end 7 8 def extension_whitelist 9 %w(pdf) 10 end 11end 12
小さのことでもいいので回答していただけると嬉しいです。
よろしくお願いしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー