如何在Rails中的表单提交上将画布图像发送到数据库

时间:2016-08-09 13:58:45

标签: javascript ruby-on-rails canvas

我在Rails中创建一个应用程序,用户可以使用JavaScript在html5画布上绘图。使用JavaScript,我已经能够将画布转换为图像,因此用户可以轻松地右键单击画布并保存图像:

var img = new Image;
    img.onload = function(){
     ctx.drawImage(img,0,0);
    };
    img.src = window.mapImgUrl;

然而,问题是画布存在于表格上。我希望图像结果以某种方式添加到数据库中,以便我可以在应用程序的其他视图上显示以前的图形。我设置了CarrierWave和AWS用于图片上传,但我无法找到一种方法来重新配置设置,以便在提交表单时将画布图像视为上传。这是否必须涉及AJAX或base64?或者是否有某种方法可以使用CarrierWave?

1 个答案:

答案 0 :(得分:0)

您所要做的就是将图像作为base-64发送到服务器,然后在需要时重新使用base64源。

var imgbuffer = canvas.toDataURL(); // canvas, not ctx

否则它可能不起作用,因为图像格式字节被解释并且可能被其他字符替换。这就是base-64最好的原因。