2017-01-09 3 views
0

Paperclip은 이미지 업로드에 사용됩니다. 다음과 같이 이미지를 base64 형식으로 업로드 :Paperclip을 통해 base64 업로드

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 

종이 클립이 제대로 전달 된 64 기수의 콘텐츠 _을 인식하는 것만으로 콘텐츠 _ 검증이 발생하지 않습니다. 파일이 무엇이든지 저장합니다.

아무도 도와주세요.

+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_save 대신 before_validation 콜백을 사용해야합니다.