如何保存和 return 文件
How to save and return a file
我正在尝试使用 sinatra-activerecord 将图像保存到数据库中,以便稍后 returned。目前(我认为)保存功能正常:
Photo.create(photo:params[:image][:tempfile].read)
但是当我尝试 return 它时,浏览器显示的不是图像图标,当我实际转到 url 时,浏览器会看到乱七八糟的随机字符.我怎样才能让它工作,为什么我的工作不起作用?
以下是我尝试 return 的方法:
file = Tempfile.new('photo')
file.write(Photo.find(params[:id]).photo)
return file
哇,我不敢相信你不知道这个 @thesecretmaster,很明显你应该保存提交的 content-type
(params[:image][:type]
) 然后当你 return file
你应该在重新调整存储的二进制图像之前设置 content_type <previously saved content-type>
。另外,如果你还没有这样做,你必须在 activerecord 中存储 params[:image][:tempfile].read
和二进制类型,否则你可能会得到一些 AttributteError
.
我正在尝试使用 sinatra-activerecord 将图像保存到数据库中,以便稍后 returned。目前(我认为)保存功能正常:
Photo.create(photo:params[:image][:tempfile].read)
但是当我尝试 return 它时,浏览器显示的不是图像图标,当我实际转到 url 时,浏览器会看到乱七八糟的随机字符.我怎样才能让它工作,为什么我的工作不起作用?
以下是我尝试 return 的方法:
file = Tempfile.new('photo')
file.write(Photo.find(params[:id]).photo)
return file
哇,我不敢相信你不知道这个 @thesecretmaster,很明显你应该保存提交的 content-type
(params[:image][:type]
) 然后当你 return file
你应该在重新调整存储的二进制图像之前设置 content_type <previously saved content-type>
。另外,如果你还没有这样做,你必须在 activerecord 中存储 params[:image][:tempfile].read
和二进制类型,否则你可能会得到一些 AttributteError
.