2017-01-09 19 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 

ペーパークリップが正しく渡さBASE64のCONTENT_TYPEを認識するが、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_saveの代わりにbefore_validationコールバックを使用する必要があります。

関連する問題