我目前正致力于将base64编码图像保存为普通png图像的应用程序。我在控制器的创建操作中有以下代码:
if @campaign.save
unless params[:campaign][:design_attributes][:front_svg].empty?
data = params[:campaign][:design_attributes][:front_svg]
File.open(params[:campaign][:design_attributes][:img_front_file_name], 'wb') do |f|
f.write(ActiveSupport::Base64.decode64(data))
end
f = File.open(params[:campaign][:design_attributes][:img_front_file_name])
@campaign.design.img_front = f
end
end
front_svg
参数包含base64数据。当我尝试调用操作时,出现以下错误:
no implicit conversion of nil into String
如何使用回形针保存base64编码图像?
答案 0 :(得分:0)
像这样改变f.write
,
decoded_data = ActiveSupport::Base64.decode64(data)
f.write(StringIO.new(decoded_data))