Javascript 将`toDataURL`映像保存到服务器
我试过实现,但我真的不明白 如何返回图像值并将其发布到服务器 编辑: 我试过解码: JavaScript“app.js”: PHP,“script.PHP”:Javascript 将`toDataURL`映像保存到服务器,javascript,ajax,post,todataurl,Javascript,Ajax,Post,Todataurl,我试过实现,但我真的不明白 如何返回图像值并将其发布到服务器 编辑: 我试过解码: JavaScript“app.js”: PHP,“script.PHP”: 在PHP代码中,您必须获得$\u POST['imgBase64']而不是$\u POST['img'] PHP代码不会返回json数据 试试这个: echo json_encode(['result'=>$success?$file:'无法保存文件')谢谢。我又读了一些书,意识到了这一点。您的解决方案有效吗?还是我应该使用我在编辑的OP
在PHP代码中,您必须获得
$\u POST['imgBase64']
而不是$\u POST['img']
PHP代码不会返回json
数据
试试这个:
echo json_encode(['result'=>$success?$file:'无法保存文件')
谢谢。我又读了一些书,意识到了这一点。您的解决方案有效吗?还是我应该使用我在编辑的OP中尝试的解决方案?我在编辑的OP中所做的尝试不起作用,但我认为它已接近成功。在$中。ajax
调用add数据类型:“json”
,以确定数据类型,并按照我在PHP代码中的回答执行。我尝试了你的修复,但仍然没有得到任何回报。我也应该做些别的事情吗?我不知道怎么把控制台弄起来。我主要使用Coda,一个只允许你编辑文件的应用程序。我尝试在DreamWeaver中打开整个站点,但也不知道如何获得控制台。抱歉。@Yeeeee在chrome中,您可以右键单击
并单击检查
项目。然后选择控制台
选项卡。(CTRL+SHIFT+I[在windows中])
saveButton.addEventListener("click", function (event) {
if (signaturePad.isEmpty()) {
alert("Please provide signature first.");
} else {
saveSignature(signaturePad.toDataURL());
}
});
function saveSignature(dataURL) {
$.ajax({
type: "POST",
url: "script.php",
data: {
imgBase64: dataURL
}
}).done(function(o) {
console.log('saved');
});
}
<?php
// requires php5
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() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>