use base64 image with Carrierwave

后端 未结 2 936
一生所求
一生所求 2020-12-28 12:06

I want to perform the similar thing as from base64 photo and paperclip -Rails, but with Carrierwave. Could anybody explain me using of base64 images in Carrierwave?

2条回答
  •  既然无缘
    2020-12-28 12:47

    class ImageUploader < CarrierWave::Uploader::Base
    
      class FilelessIO < StringIO
        attr_accessor :original_filename
        attr_accessor :content_type
      end
    
      before :cache, :convert_base64
    
      def convert_base64(file)
        if file.respond_to?(:original_filename) &&
            file.original_filename.match(/^base64:/)
          fname = file.original_filename.gsub(/^base64:/, '')
          ctype = file.content_type
          decoded = Base64.decode64(file.read)
          file.file.tempfile.close!
          decoded = FilelessIO.new(decoded)
          decoded.original_filename = fname
          decoded.content_type = ctype
          file.__send__ :file=, decoded
        end
        file
      end
    

提交回复
热议问题