1

RMagick を使用してコントローラーでオンザフライで画像ファイルを作成し、ブラウザーに送信する必要があります。非常に単純なように見えますが、方法が見つかりません。単純に試してみましrenderたが、データがバイナリであるため失敗します。私も を使おうとしましsend_dataたが、パドリーノはそのような方法を知らないと言っています。

それで、私は何を逃したのですか?どうすればこの問題を解決できますか?

4

2 に答える 2

5

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
于 2012-12-03T14:20:38.227 に答える
3

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
于 2012-08-18T08:35:55.627 に答える