Sinatra 画像
Sinatraで画像ファイルやcssファイル等、静的ファイルはpublicフォルダに入れてる。そのファイルを指定するときは、public/hoge.png、ではなく /hoge.png で指定できる。
上策:Rackに任せる
http://blog.s21g.com/articles/1565
Sinatra で画像をダイナミックに出力する(DB などに保存していたバイナリデータを直接出力する)
get '/images/:id' do |id|
# レコード取得
@item = Item.where(:id => id).first
if @item and @item.image
# content_type をセット(image/jpeg など)
content_type @item.image.content_type
# 画像を出力
@item.image.body
else
# 404
not_found
end
end
http://localhost:4567/images/3
などとアクセスすると画像が出力されます。
画像を保存させたいのであれば、画像を出力する前に、Content-Disposition ヘッダをセットしてあげます。
response["Content-Disposition"] = "attachment"
Sinatraで画像のCRUD
http://aoyagikouhei.blog8.fc2.com/blog-entry-188.html
Gyazo の upload.cgi を Sinatra で実装したりした(Heroku にデプロイもできるよ!)
http://blog.udzura.jp/2011/06/23/gyazo-upload-cgi-with-sinatra/
https://gist.github.com/1088643
sinatra での SubURI アクセスで、静的コンテンツにリンクする方法
http://d.hatena.ne.jp/seiunsky/20090728/1248805790
Writing an RSS feed using Sinatra and Haml
http://blog.gun8.com/