我正在尝试将画布图像保存到服务器。我可以保存文件,但它始终是 0 字节。我的代码有什么问题吗?
<script>
function test(){
var canvas = document.getElementById("cvs");
var dataURL = canvas.toDataURL();
$.ajax({
type: "POST",
url: "upload.php",
data: {
imgBase64: dataURL
}
}).done(function(o) {
console.log('saved');
});
}
</script>
php:
<?php
define('UPLOAD_DIR', 'uploads/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>
首先你必须确保你已经在画布上作画了after你定义了canvas
变量和before你创建了dataURL
其次,您似乎正在寻找img
在这个 php 行中:
$img = $_POST['img'];
但在你的javascript中你将它定义为imgBase64
in:
data: {
imgBase64: dataURL
}
最后你应该添加console.log(dataURL)
之后dataURL
被创建是为了确保其中有任何东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)