Php 如何将动态生成的图像保存到数据库

Php 如何将动态生成的图像保存到数据库,php,javascript,canvas,Php,Javascript,Canvas,我的网页上有一块画布,允许用户使用签名。我使用将其转换为png客户端,现在需要将其提交给Quickbase。我已经知道如何将图像上传到quickbase,但我的问题是如何将文件从index.html页面中的客户端代码中获取到submit_signature.php中的服务器端代码中 任何帮助都将不胜感激!谢谢 我个人会使用js将图像转换为PHP页面。 然后,该页面将图像保存到一个目录中,并在数据库中插入对该文件的引用 切勿将图像直接存储在数据库中。这不仅占用了大量的空间,还造成了巨大的减速 希望

我的网页上有一块画布,允许用户使用签名。我使用将其转换为png客户端,现在需要将其提交给Quickbase。我已经知道如何将图像上传到quickbase,但我的问题是如何将文件从index.html页面中的客户端代码中获取到submit_signature.php中的服务器端代码中


任何帮助都将不胜感激!谢谢

我个人会使用js将图像转换为PHP页面。 然后,该页面将图像保存到一个目录中,并在数据库中插入对该文件的引用

切勿将图像直接存储在数据库中。这不仅占用了大量的空间,还造成了巨大的减速


希望这能有所帮助。

我个人会使用js将图像转换为PHP页面。 然后,该页面将图像保存到一个目录中,并在数据库中插入对该文件的引用

切勿将图像直接存储在数据库中。这不仅占用了大量的空间,还造成了巨大的减速


希望这能有所帮助。

jSignature的作者建议不要将其保存为图像

我知道你很想从jSignature获得图像,但是,请控制自己,离我远点。相反,考虑捕获base30或svg数据,并在后期制作中,在服务器端增强并呈现这些数据

他在下面陈述了几个理由。如果这些原因对你有意义,你可以使用IMAGEGEK,你可以考虑使用JStavaReule'sVg插件,并将结果通过Ajax发布到服务器。然后你可以使用这个问题的答案:

如果您必须以base64编码字符串的形式上载图像以插入数据库,而其他选项不可用,jSignature有一个图像导出插件,可以将其转换为base64

默认的仅导出位图数据格式与早期版本中生成的输出格式jSignature兼容,在没有参数的情况下调用getData。现在,当您使用$obj.jSignaturegetData时,默认值显然会在默认情况下被调用。数据格式是Canvas本机生成的-数据url格式,base64编码的PNG位图数据,如下所示:data:image/PNG;base64,i1234lkj123;k4;l1j34l1kj3j。。。此导出调用返回单个数据url格式的字符串


jSignature的作者建议不要将其保存为图像

我知道你很想从jSignature获得图像,但是,请控制自己,离我远点。相反,考虑捕获base30或svg数据,并在后期制作中,在服务器端增强并呈现这些数据

他在下面陈述了几个理由。如果这些原因对你有意义,你可以使用IMAGEGEK,你可以考虑使用JStavaReule'sVg插件,并将结果通过Ajax发布到服务器。然后你可以使用这个问题的答案:

如果您必须以base64编码字符串的形式上载图像以插入数据库,而其他选项不可用,jSignature有一个图像导出插件,可以将其转换为base64

默认的仅导出位图数据格式与早期版本中生成的输出格式jSignature兼容,在没有参数的情况下调用getData。现在,当您使用$obj.jSignaturegetData时,默认值显然会在默认情况下被调用。数据格式是Canvas本机生成的-数据url格式,base64编码的PNG位图数据,如下所示:data:image/PNG;base64,i1234lkj123;k4;l1j34l1kj3j。。。此导出调用返回单个数据url格式的字符串


因为您使用的是dataurl,所以可以通过ajax调用将其发送到服务器,然后base64解码。画布上有一个名为toBlob的方法,可以通过XHR2轻松上传。但它还没有得到支持。这个stackoverflow答案似乎有一个解决办法:因为您使用的是dataurl,所以可以通过ajax调用将其发送到服务器,然后base64解码。画布上有一个名为toBlob的方法,可以通过XHR2轻松上传。但它还没有得到支持。这个stackoverflow的答案似乎有一个解决办法:哦,我知道这是正确的做法,但有人明确告诉我这样做…@FunkyMonk91-那么最好只为外部服务器上的图像创建数据库。这就是我们使用quickbase的目的。那么问题是什么?使用js将数据发布到php页面。。。哦,我知道这样做是正确的,但我被明确告知这样做…@FunkyMonk91-那么最好只为外部服务器上的图像创建数据库。这就是我们使用quickbase的目的。那么问题是什么?使用js将数据发布到php页面。。。是的,通常我100%同意。然而,我的任务是按照我要求的方式去做。其他事情取决于图像等等,通常我会100%同意。然而,我的任务是按照我要求的方式去做。其他事情取决于图像等 c等
        $("#save").click(function(){
          var datapair = sigdiv.jSignature("getData", "svg");
          var i = new Image();
          i.src = "data:" + datapair[0] + "," + datapair[1];
          $(i).appendTo($("#outputSvg"));

          var canvas = document.getElementById("canvas");

          canvg(canvas, datapair[1]);

          var img = canvas.toDataURL("image/png");
          $("#outputRaster").append("<img src='"+img+"' name='image' />");
        });