【问题标题】:Why is send_data not working unless I manually enter the address in the browser?除非我在浏览器中手动输入地址,否则为什么 send_data 不起作用?
【发布时间】:2018-04-13 05:31:43
【问题描述】:

我正在使用 Rails 5。

为什么 send_data 不显示自身? 当我在浏览器中手动输入时它起作用了。 http://localhost:3000/docfiles/show/59f9f6a651d2f52dc080116c

我需要这个 def 的布局或视图吗?

这是我的硬代码(这个问题只有一个 f1.png):

def show     
  data= read_binary('./upload/f1.png')
  send_data(data, :filename=>'f1.png', :type=>'image/png', :disposition=>"inline")   
end

mime_types.rb

Mime::Type.register "image/png", :png

然后在浏览器栏显示: http://localhost:3000/docfiles/show/59f9f6a651d2f52dc080116c 错误:未定义且无图像显示。

但是如果我[Enter](没有任何扩展名),那么图像文件就会显示出来。!

【问题讨论】:

  • 请在您的问题中添加更多信息,包括更多代码。你想达到什么目的?分享任何相关模型、视图和控制器的完整代码。
  • 试试send_data(data.read, :filename=>doc.filename, :type=>doc.content_type, :disposition=>"inline")
  • 然后:====> NoMethodError - #<0x00007fbe611d4be8>

标签: ruby-on-rails image pdf png


【解决方案1】:

在控制器 def 中只需删除 send_data 并使用 link_to_blank 创建视图 (如果使用link_to,我发现同样的问题)

      %td= link_to_blank align_text(doc.filename), :controller=>"mycontroller", :action=>:listdocument, :id=>doc.id

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多