我有此代码,或者ajax无法正确传输数据,或者我的php无法正常工作.我知道画布正在保存到写入页面的数据png中.有没有一种方法可以将其转换为文件并从javascript保存?
启动JAVASCRIPT:——————-
<-获取canvas元素并转换为数据png->
var canvas = document.getElementById("textCanvas");
var img = canvas.toDataURL("image/png");
<-结束canvas元素并转换为数据png->
<-发送到php文件->
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';
}
}
<-结束发送到php文件->
结束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:——————-
解决方法:
将php更改为——–>
define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . 'txtimg.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
我从—–> http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html得到的
-欢呼棒极了:)
原文地址:https://codeday.me/bug/20191121/2049488.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。