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
Paperclip正确识别传递的base64的content_type,但没有发生content_type验证。它保存文件的任何内容。
有谁可以帮我解决这个问题?!
答案 0 :(得分:0)
您需要使用before_validation
回调代替before_save
。