【问题标题】:What php download script I can use to save canvas as png to local computer?我可以使用什么 php 下载脚本将画布作为 png 保存到本地计算机?
【发布时间】:2013-07-17 22:45:51
【问题描述】:

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

下面是我使用的嵌入在 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;
?>

【问题讨论】:

  • 所以,为了澄清,问题是您正在通过 PHP 脚本渲染 PNG 图像,但它已损坏?尝试从浏览器将图像保存到磁盘,看看二进制流中是否有错误。例如,如果您的标题前有任何空格,您的标题命令会导致警告。
  • 我对画布对象只有一点了解,但据我所知,画布的内容可能直到运行时才被某些 javascript 加载,因此可能无法在服务器,因为 javascript 不会通过解释器运行。
  • 我尝试从网络浏览器保存到磁盘,但我只得到“另存为网页”选项。
  • 那么就可以了 - 或者有时右键单击(损坏的)图像会给您一个“保存图像”选项。 (您需要使用@halfer 或其他任何东西,按照下面的帮助字符串,来引起别人对您的评论的注意)。

标签: php html html2canvas


【解决方案1】:

试试这个代码

$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);

【讨论】:

  • 我尝试了代码我得到了相同的结果,除了文件名被命名为 downloader.php。
  • 下载的文件里面有如下代码:
    警告: readfile(): Filename cannot be empty in C:\blackboard\docs\downloader .php8 行
  • 这里是link
  • 告诉我你会将 img 或 name 变量都传递给 download.php
  • 我不确定你的问题。我相信这是图像。我希望用户在鼠标单击此处页面上显示的保存和下载按钮时下载页面图像webpage
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2022-01-24
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 2017-06-30
相关资源
最近更新 更多