【发布时间】: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