Rails: displaying an image from a blob field in a database

前端 未结 3 1994
后悔当初
后悔当初 2020-12-25 08:26

So, I managed to get an image blob into my MySQL database (there\'s a big hex number in the field), but I can\'t find any documentation on how to display the image in a rail

相关标签:
3条回答
  • 2020-12-25 09:21

    You should also add

    resources :users do
         get 'show_image', :on => :collection
     end
    

    or

    get users/show_image" => "users#show_image"
    

    before

    resources :users in route.rb file

    0 讨论(0)
  • 2020-12-25 09:25

    The following code should work. In your controller, create a method:

    
    def show_image
        @user = User.find(params[:id])
        send_data @user.image, :type => 'image/png',:disposition => 'inline'
    end
    
    

    In your view:

    
    <%= image_tag url_for(:controller => "mycontroller", :action => "show_image", :id => @user.id) %>
    
    

    I would recommend using the Paperclip gem. It makes saving/viewing of images really easy.

    0 讨论(0)
  • 2020-12-25 09:25

    Because you mentioned "quick and dirty", I'll throw out this as an alternative-

    <%= ('<img src="data:image/jpg;base64,%s">' % Base64.encode64(@the_data)).html_safe %>
    

    I think this is closest to what you wanted to do. There's a few reasons that this code shouldn't be used as-is, but it's simple. I'd have to think more about how bad of an idea is it is to mark the whole thing as html_safe. Also, this wouldn't work in older versions of IE.

    0 讨论(0)
提交回复
热议问题