2017-01-09 2 views
0

Paperclip используется для загрузки изображений. Изображения загружены в виде base64 следующим образом:Загрузка base64 через Paperclip

class Photo < ActiveRecord::Base 

    before_save :set_image 
    attr_accessor :picture_data 

    has_attached_file :image 
    validates_attachment_content_type :image, :content_type => %w(image/jpeg image/jpg image/png) 

    def set_image 
    unless self.picture_data.nil? 
     data = StringIO.new(Base64.decode64(self.picture_data)) 
     self.image = data 
     self.picture_data = nil 
    end 
    end 

end 

Paperclip правильно распознает CONTENT_TYPE из base64 прошло, но проверка content_type не происходит. Он сохраняет все файлы.

Может ли кто-нибудь помочь мне через это ?!

+0

На самом деле я запутался в 'has_attached_file: image' и 'self.avatar = data', какое поле фактически используется для изображения магазина? –

+0

Извините за блендер. Сделал исправления. –

+0

Ссылка на эту ссылку может быть вам полезной. http://stackoverflow.com/questions/23675747/use-paperclip-for-saving-base64-images-obtained-from-an-api –

ответ

0

Вам необходимо использовать обратный вызов before_validation вместо before_save.

Смежные вопросы