所以,我设法将图像blob插入到我的MySQL数据库中(字段中有一个很大的十六进制数字),但是我找不到任何有关如何在轨道环境中显示图像......当它打印出来时,它从一个GIF89开始......然后当您在记事本中打开它时,您在GIF中看到的gobbledygook字符。 :P任何线索将不胜感激!Rails:从数据库中的blob字段显示图像
谢谢。
所以,我设法将图像blob插入到我的MySQL数据库中(字段中有一个很大的十六进制数字),但是我找不到任何有关如何在轨道环境中显示图像......当它打印出来时,它从一个GIF89开始......然后当您在记事本中打开它时,您在GIF中看到的gobbledygook字符。 :P任何线索将不胜感激!Rails:从数据库中的blob字段显示图像
谢谢。
下面的代码应该可以工作。在你的控制器中,创建一个方法:
def show_image
@user = User.find(params[:id])
send_data @user.image, :type => 'image/png',:disposition => 'inline'
end
在你看来:
<%= image_tag url_for(:controller => "mycontroller", :action => "show_image", :id => @user.id) %>
我会建议使用回形针宝石。它使保存/查看图像变得非常简单。
您还应该添加
resources :users do
get 'show_image', :on => :collection
end
或
get users/show_image" => "users#show_image"
前
resources :users
在route.rb文件
因为你提到的 “快速和肮脏的”,我我会抛弃这个作为替代方案 -
<%= ('<img src="data:image/jpg;base64,%s">' % Base64.encode64(@the_data)).html_safe %>
我认为这是最接近你想要做的。这个代码不应该原样使用,有一些原因,但很简单。我不得不多想一个想法是多么糟糕,就是把整个事情标记为html_safe。另外,这在IE的旧版本中不起作用。
谢谢,这是有效的。回形针可能是我最终走的路,但我需要一个快速而肮脏的解决方案来演示。 – wulftone 2010-12-05 19:57:27
@wulftone。很高兴能帮上忙。 – Raunak 2010-12-05 20:41:38