这就是我正在做的事情:
在控制器中:-
dataurl = params[:dataURL]
io = FilelessIO.new(Base64.decode64(dataurl))
io.original_filename = "foobar.jpeg"
io.content_type = "image/jpeg"
p = SketchilyTest.new
p.image = io
p.save
模型:-
class FilelessIO < StringIO
attr_accessor :original_filename
attr_accessor :content_type
end
class SketchilyTest < ActiveRecord::Base
attr_accessible :desc, :image
mount_uploader :image, BaseSixtyfourEncodedUploader
end
BaseSixtyfourEncodedUploader 是一个简单的carrierwave gem 上传器
问题是我没有收到任何错误并且图像被上传但它已损坏。
当我试图在浏览器中打开它时,我收到了这个错误:
The image “http://localhost:3000/uploads/sketchily_test/image/41/foobar.jpeg” cannot be displayed because it contains errors.
另请注意,我能够从我的数据库中的 base64_encoded 数据重新生成图像。但无法将其保存为带有载波的 jpeg 图像。