i have this code, either the ajax isn't transferring the data correctly or my php doesn't work properly. i know the canvass is saving to data png it writes to the page. Is there a way to just convert it to a file and save it from javascript?
我有这个代码,要么ajax没有正确传输数据或我的PHP无法正常工作。我知道游说正在保存到写入页面的数据。有没有办法将其转换为文件并从javascript中保存?
START JAVASCRIPT:-------------------
<-- get the canvass element and convert to data png -->
< - 获取canvass元素并转换为数据png - >
var canvas = document.getElementById("textCanvas");
var img = canvas.toDataURL("image/png");
<-- END the canvass element and convert to data png -->
< - END the the canvass元素并转换为数据png - >
<-- SEND to php file -->
< - 发送到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';
}
}
<-- END send to php file -->
< - END发送到php文件 - >
END JAVASCRIPT:-------------------
START 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);
END PHP:-------------------
1 个解决方案
#1
3
changed the php to -------->
将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.';
which i got from ----->http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html
我得到了-----> http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html
-cheers works awesome :)
- 工程真棒:)
#1
3
changed the php to -------->
将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.';
which i got from ----->http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html
我得到了-----> http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html
-cheers works awesome :)
- 工程真棒:)