如何保存和返回文件

时间:2016-07-13 01:06:18

标签: image postgresql activerecord sinatra sinatra-activerecord

我尝试使用sinatra-activerecord将图像保存到数据库以便稍后返回。目前(我认为)保存功能正常:

Photo.create(photo:params[:image][:tempfile].read)

但是当我尝试返回它时,浏览器显示的不是图像图标,当我真正转到浏览器的URL时,我会看到一堆随机字符。我怎样才能让这个工作起作用,为什么我的工作不正常呢?

以下是我试图返回的方式:

file = Tempfile.new('photo')
file.write(Photo.find(params[:id]).photo)
return file

1 个答案:

答案 0 :(得分:0)

哇,我不敢相信你已经不知道这个@thesecretmaster,显然你应该保存提交的content-typeparams[:image][:type]),然后当你{{1}你应该在重新调整存储的二进制图像之前设置return file。此外,如果你还没有这样做,你必须在activerecord中存储类型为二进制文件的content_type <previously saved content-type>,否则你可能会得到一些params[:image][:tempfile].read