【问题标题】:Show image uploaded in rails显示在 rails 中上传的图像
【发布时间】:2015-09-21 20:03:22
【问题描述】:

我按照这个教程http://ryan.endacott.me/2014/06/10/rails-file-upload.html

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

【问题讨论】:

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


【解决方案1】:

确保将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

然后在whatever/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之类的。如果用户下载并保存数据,则提供文件名可以让浏览器为数据命名。最后,配置指定文件是内联显示还是作为附件下载。如果未指定其处置方式,则假定为附件。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2011-10-20
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2017-09-25
    • 2012-12-20
    • 2017-04-29
    相关资源
    最近更新 更多