无法将画布转换为图像 - 服务器端


not able to convert canvas to image - server side

无法在服务器上将HTML5画布转换为图像

我的代码 : JavaScript

var testCanvas = document.getElementById("viewport");
    var canvasData = testCanvas.toDataURL("image/png");

    $.ajax({
        type: 'POST',
        url: 'process.php',
        data: {
            text1: canvasData
        },
        success: function(response) {
alert(response + '.png');
}

PHP代码:进程.php

<?php
function generateRandomString($length = 6) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

$rawData  = $_POST['text1'];
$filteredData = explode(',', $rawData);
$unencoded = base64_decode($filteredData[1]);
$dr = generateRandomString() ;
$fp = fopen('upload/' . $dr .'.png', 'w');
fwrite($fp, $unencoded);
fclose($fp); 
echo $dr;

?> 

我不明白我的代码有什么问题,我用谷歌搜索了很多,但没有找到任何有用的解决方案并且正在 CentOS 上使用 nginx

我遇到了同样的问题,然后我发现我需要向保存图像所需的目录授予写入权限

你可以通过这个命令来完成:

导航到文件夹并

chmod -R 777 . -R使其递归。