显示在rails中上传的图片

时间:2015-09-21 20:03:22

标签: ruby-on-rails ruby-on-rails-4

我遵循了本教程http://ryan.endacott.me/2014/06/10/rails-file-upload.html

在不使用宝石的情况下制作上传图片。 但它没有教会如何显示图像。我已经尝试了几种方法,但没有成功。

1 个答案:

答案 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。如果用户下载并保存,则提供文件名会为浏览器指定数据的名称。最后,处置指定文件是以内联方式显示还是作为附件下载。如果未指定其处置,则假定它是附件。

我希望有所帮助!