RMagick を使用してコントローラーでオンザフライで画像ファイルを作成し、ブラウザーに送信する必要があります。非常に単純なように見えますが、方法が見つかりません。単純に試してみましrender
たが、データがバイナリであるため失敗します。私も を使おうとしましsend_data
たが、パドリーノはそのような方法を知らないと言っています。
それで、私は何を逃したのですか?どうすればこの問題を解決できますか?
Padrino コントローラーを介してファイルを送信する方法を調査しているときに、この質問を見つけました。目標を達成するのに役立ちます。
send_data メソッドは、バージョン 1.0 で削除された Sinatra request-method です: https://github.com/sinatra/sinatra/blob/1.0/CHANGES#L108
私は Padrino バージョン 0.10.7 を使用しており、私のアクションは次のようになりました。
get :screenshot, :provides => :jpg do
...
File.open("path/to/file", "r").readlines
end
sinatra apiによると、これはもう必要ありません。
get :image, with: id, provides: :png do
img = Image.find(params[:id])
img.binary_data_or_so
end
基本的には以下と同じです:
get '/send_binarydata' do
content_type 'image/png'
\x01\x02\x03
end