我有这段代码,要么 ajax 没有正确传输数据,要么我的 php 不能正常工作。我知道画布正在保存到它写入页面的数据 png 中。有没有办法将其转换为文件并从 JavaScript 保存?
启动 JavaScript:--------------------
var canvas = document.getElementById("textCanvas");
var img = canvas.toDataURL("image/png");
var onmg = encodeURIComponent(img);
var xhr = new XMLHttpRequest();
var body = "img=" + onmg;
xhr.open('POST', "convertit.php",true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-Length", body.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(body);
xhr.onreadystatechange = function () {
if (xhr.status == 200 && xhr.readyState == 4) {
document.getElementById("div").innerHTML = xhr.responseText;
} else {
document.getElementById("div").innerHTML = 'loading';
}
}
JavaScript 结束:--------------------
启动 PHP:--------------------
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
file_put_contents('/uploads/file.png', $data);
PHP 结束:--------------------