如何使用Ruby和Sequel显示BLOB存储的图像

时间:2012-09-30 16:08:25

标签: ruby blob sequel ramaze

我没有使用Rails,所以send_data函数不可行。

image = User.select("image, image_mime").where("username = '#{params[:name]}'").first
  send_data( image.image,
             :type => image.image_mime,
             :disposition => 'inline')

1 个答案:

答案 0 :(得分:1)

查看send_file方法的来源:

def send_file(filename, content_type = nil, content_disposition = nil)
  content_type ||= Rack::Mime.mime_type(::File.extname(filename))
  content_disposition ||= File.basename(filename)

  response.body = ::File.open(filename, 'rb')
  response['Content-Length'] = ::File.size(filename).to_s
  response['Content-Type'] = content_type
  response['Content-Disposition'] = content_disposition
  response.status = 200

  throw(:respond, response)
end

您可以尝试相同操作,只需将正文设置为image.image,而不是从文件中读取。