我正在努力解决这个问题。我想将文件编码为base64作为其中一个过程。
到目前为止我的代码看起来像
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include CarrierWave::MimeTypes
storage :file
def extension_white_list
%w(jpg jpeg png)
end
def store_dir
"/tmp/images/#{model.class.to_s.underscore}/#{model.id}"
end
process :set_content_type
process :format_to_jpg
process :strip_metadata
process :encode_base64
def format_to_jpg
manipulate! do |img|
img.format 'jpg'
img
end
end
def strip_metadata
manipulate! do |img|
img.strip
img
end
end
def encode_base64
#What should be here?
end
end
我不确定我应该在encode_base64方法中放置什么。编码方法是Base64.encode64()作为参数应该发送文件内容(可能是self.read)。但我不确定如何遵循Carrierwave的最佳实践。
答案 0 :(得分:2)
发现我不需要做任何特别的事情。
def encode_base64
File.write(path,Base64.encode64(File.read(path)))
end
魔术