徒然なるままに、日ぐらしP/Cに向ひて――
メインメニュー
ブログカレンダー
2013年 5月
« 4月   6月 »
 1234
567891011
12131415161718
19202122232425
262728293031  
WordPress カテゴリ一覧
WordPress 検索


富士カメラ5

Kestrel とは、チョウゲンボウのことです。ハトくらいの小さな猛禽類、つまりワシの仲間で、ハヤブサに似ています。
チョウゲンボウにはホバリングという特技があります。よく農地の上空で空中に停止している姿が見られます。小さいけれどカッコイイ、そして最近は都会でも繁殖している頼もしいタカです。
このサイトのURLは、そんなチョウゲンボウから名前を借りました。

2013年5月14日(火曜日)

send_file と send_data

カテゴリー: - flyman @ 23時20分30秒

RailsからThinreportsを使用してPDFファイルを作っている。
テンポラリディレクトリにPDFを生成し、それをダウンロードさせる。

pdfFile = File.join(Rails.root, 'tmp', fileName + '.pdf')
report.generate_file(pdfFile) # PDFファイルの生成
send_file(pdfFile, :filename => 'hoge.pdf')
File.delete(pdfFile)

当初はこれでも動いていたのだが、全く同じロジックで別のアプリを作ったら、そっちは"ファイルがないよ"エラーになった。
原因は、PDFのダウンロード前にファイルが削除されてしまうためらしい。
なぜ最初のアプリがちゃんと動くのかは不明だ。殆ど同じ作りなんだけど。
で、作ったファイルをメモリ上に展開してからダウンロードさせるようにした。

pdfFile = File.join(Rails.root, 'tmp', fileName + '.pdf')
report.generate_file(pdfFile) # PDFファイルの生成
send_data(File.read(pdfFile), :filename => 'hoge.pdf')
File.delete(pdfFile)

これでうまくいった。


TrackBacks

このコメントのRSS

TrackBack URL : http://www.kestrel.jp/modules/wordpress/wp-trackback.php/907

この投稿には、まだコメントが付いていません

コメント

 
投稿された内容の著作権はコメントの投稿者に帰属します。

20 queries. 0.054 sec.
Powered by WordPress Module based on WordPress ME & WordPress

ヘッドライン
nikkansports
IT Pro
レスポンス
テーマ選択

(4 テーマ)