Сохранение изображений 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))