我遵循了本教程http://ryan.endacott.me/2014/06/10/rails-file-upload.html
在不使用宝石的情况下制作上传图片。 但它没有教会如何显示图像。我已经尝试了几种方法,但没有成功。
答案 0 :(得分:2)
确保将disposition: "inline"
添加到send_data
方法以及文件的type
,以便显示图片而不是下载图片,如此处所述。 http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_data
def show
@document = Document.find(params[:id])
send_data(@document.file_contents,
type: @document.content_type,
filename: @document.filename,
type: 'image/png',
disposition: "inline")
end
然后在/ your / path / is / show.html.erb
中<%= image_tag url_for(controller: "documents",
action: "show",
id: @document.id) %>
这篇文章可能会有所帮助(https://www.safaribooksonline.com/library/view/rails-cookbook/0596527314/ch15s04.html):
对于浏览器显示二进制图像数据,需要指示数据是图像。具体来说,需要告知数据的内容类型类似于image / gif。如果用户下载并保存,则提供文件名会为浏览器指定数据的名称。最后,处置指定文件是以内联方式显示还是作为附件下载。如果未指定其处置,则假定它是附件。
我希望有所帮助!