Php 画布中的base64字符串无效

Php 画布中的base64字符串无效,php,javascript,html,canvas,base64,Php,Javascript,Html,Canvas,Base64,我正在制作一个将在iPad上使用的web应用程序。将邀请用户为图像着色。我使用HTML5Canvas来实现这一点,并将颜色基于。最后,我想把这个图像和用户的名字一起上传到数据库中 我是怎么做的 当用户完成着色时,他点击“保存”,我使用toDataURL()转换画布。然后,我将数据插入到一个不可见的表单元素中,并将表单提交到一个新页面。像这样: document.getElementById('my_hidden').value = canvas.toDataURL('image/png'

我正在制作一个将在iPad上使用的web应用程序。将邀请用户为图像着色。我使用HTML5Canvas来实现这一点,并将颜色基于。最后,我想把这个图像和用户的名字一起上传到数据库中

我是怎么做的 当用户完成着色时,他点击“保存”,我使用toDataURL()转换画布。然后,我将数据插入到一个不可见的表单元素中,并将表单提交到一个新页面。像这样:

    document.getElementById('my_hidden').value = canvas.toDataURL('image/png');
    document.forms["form1"].submit();
    value="<?php echo $_POST['my_hidden'];?>"
这里我询问用户的姓名和电子邮件。我还将画布数据插入到一个新的不可见表单元素中。像这样:

    document.getElementById('my_hidden').value = canvas.toDataURL('image/png');
    document.forms["form1"].submit();
    value="<?php echo $_POST['my_hidden'];?>"
事实上,这是无效的。然后,我使用相同的方法在第一个表单之后检查它,然后它就已经无效了。因此,我认为要么第一次通过隐藏字段提交将其搞乱,要么toDataURL()将其搞乱


我决不是一个专业的程序员,但我不想走到这一步,也不想完成这一步。因此,任何帮助都将非常感谢!谢谢。

看起来您忘了剪掉数据URI的开头,只留下数据

var uri = canvas.toDataURL('image/png'),   // data:image/png;base64,blahblahblah
    b64 = uri.slice(uri.indexOf(',') + 1); // blahblahblah
document.getElementById('my_hidden').value = b64;

Jup,修复了base64字符串错误!但是现在我得到一个HTTP请求错误414,因为URI太长了。有没有关于如何避免这种情况的建议?已经谢谢你了!
414
错误发生在哪个阶段?如果是行
image.src=//…
,是否再次添加dataURI位?不这样做意味着它会认为您在寻找服务器上的文件。如果在上传阶段发生,请考虑用不同的MayoDI上传。我没有再加进去。我尝试了这个,现在错误消失了,但仍然没有图像。我想我可能不得不寻找另一种方法真的<代码>image.src=“”;ctx.drawImage(图像,0,0)