2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsで送信されてきた画像データを、そのままバイナリで返す

Last updated at Posted at 2018-04-25

開発中のRailsアプリで、PUTで送信された画像を保存して、その画像データのバイナリを返す機能の実装が必要でした。
ほぼほぼ下の参考記事を組み合わせただけですが、備忘録として書いておきます。

結論

  1. 画像データはActionDispatch::Http::UploadedFileのオブジェクトとしてstrongパラメータに渡される
  2. バイナリを返すので、 send_dataを使って返せばよい
  3. send_dataの引数として、ActionDispatch::Http::UploadedFileオブジェクトの値を渡してあげる

ソースコード(例外処理とか無し。upload_image_paramsがstrongパラメータ)

def update_image
    ... # 保存する
    send_data upload_image_params[:image].read,
              type: upload_image_params[:image].content_type,
              disposition: 'inline', stats: :ok
end

参考

Rails でファイルをアップロードしてDBに登録する
ActionDispatch::Http::UploadedFileを読む (デバッグメモ)
Railsドキュメント - send_data

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?