Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Base64图像解码问题-空的.png文件?_Javascript_Php_Ajax_Canvas_Base64 - Fatal编程技术网

Javascript Base64图像解码问题-空的.png文件?

Javascript Base64图像解码问题-空的.png文件?,javascript,php,ajax,canvas,base64,Javascript,Php,Ajax,Canvas,Base64,我试图从基于html代码生成的元素中获取.png图像 我使用的javascript是: function canvityo() { html2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild( canvas ); var dataURL = canvas.toDataURL();

我试图从基于
html
代码生成的
元素中获取
.png
图像

我使用的
javascript
是:

function canvityo() {
        html2canvas(document.body, {
            onrendered: function(canvas) {
            document.body.appendChild( canvas );
            var dataURL = canvas.toDataURL();

        $.ajax({
          type: "POST",
          url: "imgprocess.php",
          data: { 
             imgBase64: dataURL
          }
        }).done(function(o) {
          console.log('saved'); 
        });
  }
});
}
我已经链接了
html2canvas
库,它创建了很好的
(自从我使用
appendChild
后可以看到它们),现在我想将这些
转换成
photo.png
文件,以便能够将其保存在服务器上,或者
blob
的形式插入到我的数据库表中

var dataURL = canvas.toDataURL();
在这一点上,似乎一切正常(我可以设法得到这个
url
,看起来很长)。由于外观奇怪,我非常确定我需要使用
base64解码
将其作为
图像
文件检索

我的
imgprocess.php
如下所示:

<?php

$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);

?>

它确实输出了
photo.png
文件,但该文件是
空的
,由于我经验不足,我一直在努力寻找这个问题的原因


也许你们能帮我解决这个问题?

应该是
$img=$\u POST['imgBase64']
$img=$\u POST['data']
因为在发送ajax post请求时,您的数据对象的键名是
imgBase64

我知道这会很愚蠢,谢谢@moáois!我马上就能找到最好的答案:)现在效果很好!谢谢你的帮助,达米安;)从早上开始应付,我不高兴它起了作用!