Сохранение изображений base64 с помощью скрепки

В настоящее время я работаю над приложением для сохранения изображения в кодировке 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 params содержит данные base64. Когда я пытаюсь вызвать действие, я получаю следующую ошибку:

no implicit conversion of nil into String

Как сохранить изображение в кодировке base64 с помощью скрепки?

1 ответ

+ Изменить f.write как это,

decoded_data = ActiveSupport::Base64.decode64(data)
f.write(StringIO.new(decoded_data))
Другие вопросы по тегам