javascript - 使用 PHP 在服务器上保存 .toDataURL() 错误 500

标签 javascript php todataurl

我从 GitHub 存储库中获得了此函数,该函数将 Canvas 上绘制的签名输出到 DataURL()。当我检查它时,它以一串编码数据(a .png)的形式返回。

用户单击保存按钮,会发生以下情况:

saveButton.addEventListener("click", function (event) {
    if (signaturePad.isEmpty()) {
        alert("Please provide signature first.");
    } else {
        saveSignature(signaturePad.toDataURL());
    }
});

function saveSignature(dataURL) {
$.ajax({
  type: "POST",
  datatype: "json",
  url: "script.php",
  data: { 
     imgBase64: dataURL
  }
}).done(function(o) {
  console.log('saved'); 
});
signaturePad.clear();
}

然后它会触发同一文件夹中的 PHP 脚本,名为 script.php

<?php
    // requires php5
    define('UPLOAD_DIR', 'images');
    $img = $_POST['imgBase64'];
    $file = UPLOAD_DIR . uniqid() . '.png';
    $success = file_put_contents($file, $data);
    print $success ? $file : 'Unable to save the file.';
?>

我不知道为什么它会导致 500 服务器错误。

控制台没有打印“无法保存文件”,也没有打印“已保存”。

最佳答案

您在script.php中有错误您正在 $img 中接收数据使用$data写入时所以需要替换变量

<?php
    // requires php5
    define('UPLOAD_DIR', 'images');
    $img = $_POST['imgBase64'];
    $file = UPLOAD_DIR . uniqid() . '.png';
    $success = file_put_contents($file, $img); //<---- change here
    print $success ? $file : 'Unable to save the file.';
?>

关于javascript - 使用 PHP 在服务器上保存 .toDataURL() 错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44612052/

相关文章:

javascript - Bootstrap 网格缩略图,单击时可展开预览

javascript - ASP .NET MVC Core WEB API 上传文件使用 Angular JS 显示错误

javascript - 附加/推送到 json 对象

javascript - 使整个li成为js的链接

php - vb.net通过php向mysql数据库添加文本

javascript - 代码看起来不错,但是表单提交没有将 <canvas> 发布到 php

javascript - 在 Chrome 中使用 toDataURL 有其他选择吗?

Javascript:在 Chrome 中将 Canvas 转换为图像

javascript - 如何在单个查询中搜索多个子字符串

php - 如何使用动态键循环 PHP 对象