使用回形针保存base64图像

时间:2015-06-02 08:26:08

标签: ruby-on-rails ruby canvas base64 paperclip

我目前正致力于将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编码图像?

1 个答案:

答案 0 :(得分:0)

像这样改变f.write

decoded_data = ActiveSupport::Base64.decode64(data)
f.write(StringIO.new(decoded_data))