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!我马上就能找到最好的答案:)现在效果很好!谢谢你的帮助,达米安;)从早上开始应付,我不高兴它起了作用!