Javascript 将画布图像保存到服务器

Javascript 将画布图像保存到服务器,javascript,php,html,canvas,Javascript,Php,Html,Canvas,我正在尝试将画布图像保存到服务器。我可以保存文件,但它总是0字节。我的代码怎么了 <script> function test(){ var canvas = document.getElementById("cvs"); var dataURL = canvas.toDataURL(); $.ajax({ type: "POST", url: "upload.php", data: { imgBase64: dataURL } }).done(fun

我正在尝试将画布图像保存到服务器。我可以保存文件,但它总是0字节。我的代码怎么了

<script>
function test(){
var canvas  = document.getElementById("cvs");
var dataURL = canvas.toDataURL();

$.ajax({
  type: "POST",
  url: "upload.php",
  data: { 
     imgBase64: dataURL
  }
}).done(function(o) {
  console.log('saved'); 

});

}
</script>

功能测试(){
var canvas=document.getElementById(“cvs”);
var dataURL=canvas.toDataURL();
$.ajax({
类型:“POST”,
url:“upload.php”,
数据:{
imgBase64:数据URL
}
}).完成(功能(o){
console.log('saved');
});
}
php:


首先,您必须确保在定义
画布
变量之后和创建
数据URL之前,已在画布上绘制了

其次,您似乎正在这一php行中寻找
img

$img = $_POST['img'];
但在javascript中,您将其定义为
imgBase64

data: { 
   imgBase64: dataURL
}

最后,您应该在创建
dataURL
后添加
console.log(dataURL)
,以确保其中有任何内容。

您在画布上的绘制位置可能重复:我不太确定您的意思。我将它绘制在与上面的javascript相同的页面上。这是我找到如何获取我所拥有的内容的链接。问题是,当我遵循这些指示时,我得到了0字节。谢谢。当我按照您的建议将“img”替换为“imgBase64”时,问题已经解决。我曾尝试插入“dataUrl”,但没有成功。另外,在发布之前,我的代码中有console.log(dataURL),但我把它去掉了。
data: { 
   imgBase64: dataURL
}