我可以使用什么php下载脚本将画布保存为png到本地计算机?

我可以使用什么php下载脚本将画布保存为png到本地计算机?,php,html,html2canvas,Php,Html,Html2canvas,我想能够下载到一个图像文件html2canvas使用php下载脚本只。该页面有一个带有形状的滑动条,供用户为练习选择。显示结果的网页需要捕获并保存到图像文件中 下面是我在html代码中嵌入的脚本 function triggerPull() { if (document.getElementById('name').value != "") { html2canvas(document.getElementById('body'), { onren

我想能够下载到一个图像文件html2canvas使用php下载脚本只。该页面有一个带有形状的滑动条,供用户为练习选择。显示结果的网页需要捕获并保存到图像文件中

下面是我在html代码中嵌入的脚本

function triggerPull() {
    if (document.getElementById('name').value != "") {
        html2canvas(document.getElementById('body'), {
            onrendered: function(canvas) {
                var dataURL = canvas.toDataURL('img/png');
                canvas.src = dataURL;
                document.getElementById('url').value = dataURL;
                document.download.submit();
            }
        });
    } else {
        alert('Please fill in your name first.');
    }
}
我为downloader.php文件尝试了下面的脚本。我只得到一个名为downloader.php.png的空白图像文件,请帮助

header('Content-type: image/png');
header('Content-Disposition: attachment; filename="' . $_POST['name'] .'"');
$encoded = $_POST['img'];
$encoded = str_replace(' ', '+', $encoded);
$decoded = base64_decode($encoded);
echo $decoded;
?>
试试这个代码

$file = $_POST['url'];
$file = str_replace(' ', '+', $file);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=chart.png');
header('Content-Transfer-Encoding: binary');
readfile($file);

因此,为了澄清,问题是您正在通过PHP脚本渲染PNG图像,但它已损坏?尝试将图像从浏览器保存到磁盘,查看二进制流中是否有错误。例如,如果在标题前有空格,则标题命令会发出警告。我对canvas对象只有一点了解,但据我所知,画布的内容可能直到运行时才被某些javascript加载,因此可能无法在服务器上下载,因为javascript不会通过解释器运行。我尝试从web浏览器保存到磁盘,但我只得到“另存为网页”选项。那就可以了——或者有时候右键点击(损坏的)图像会给你一个“保存图像”选项。(根据下面的帮助字符串,您需要使用@halfer或其他任何东西来引起他人对您的评论的注意。顺便说一句,我尝试了代码,但得到了相同的结果,只是文件名为downloader.php。下载的文件中有以下代码:
警告:readfile():第8行的C:\blackboard\docs\downloader.php中的文件名不能为空
以下是告诉我您将同时传递img或name变量进行下载。phpI对您的问题不确定。我相信这就是形象。我想让用户下载加载页面的图像时,鼠标点击保存和下载按钮显示在页面上这里