我无法通过控制器将 Base64 图像保存为文件,并且不会收到任何错误,我不想保存在数据库中,只是保存在公共文件夹中。
我正在使用 Rails 4.2.8 和 Ruby 2.1,它是一个遗留应用程序,并使用 html2canvas 来生成 base64 图像。
我的控制器定义:
def save_image
image = params[:image]
file = "#{Rails.root}/public/dashboard.png"
File.open(file,'wb') do |f|
f.write Base64.decode64(image)
end
file.save
end
我尝试使用临时文件并现在使用现有文件,以及“image = request.body['image']”,两者都不起作用。
路线:
post 'save_image' => 'intranet/dashboard#save_image'
我在 html2canvas 函数中调用 post req:
html2canvas(document.getElementById('list')).then(canvas => {
base64String = canvas.toDataURL();
var url = '/save_image';
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
image : base64String
}
});
});
日志上没有任何警报,我不知道如何调试它。
我决定这样做:
protect_from_forgery except: [:save_image]