我尝试使用sinatra-activerecord将图像保存到数据库以便稍后返回。目前(我认为)保存功能正常:
Photo.create(photo:params[:image][:tempfile].read)
但是当我尝试返回它时,浏览器显示的不是图像图标,当我真正转到浏览器的URL时,我会看到一堆随机字符。我怎样才能让这个工作起作用,为什么我的工作不正常呢?
以下是我试图返回的方式:
file = Tempfile.new('photo')
file.write(Photo.find(params[:id]).photo)
return file
答案 0 :(得分:0)
content-type
(params[:image][:type]
),然后当你{{1}你应该在重新调整存储的二进制图像之前设置return file
。此外,如果你还没有这样做,你必须在activerecord中存储类型为二进制文件的content_type <previously saved content-type>
,否则你可能会得到一些params[:image][:tempfile].read
。