尝试将Raphael Paper在服务器上保存为图像,我有以下代码:

$(function() {

$("#printBtn").click(function() {

var svg1 = $("#map > svg").get();
var svg = $('#map').html().replace(/>\s+/g, ">").replace(/\s+</g, "<").replace(/<canvas.+/g,"");
// strips off all spaces between tags

canvg('cvs', svg, {
ignoreMouse: true,
ignoreAnimation: true
});
var canvas  = document.getElementById('cvs');
var img = canvas.toDataURL("image/png");
});
});

});
</script>


在我的process.php上,我有:

<?php
$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
$decodedData = base64_decode($data);
fclose();
echo "/canvas.png";


但我从process.php收到500 Internal Server Error



您能否让我知道为什么会这样,我如何才能阻止它?

谢谢

最佳答案

您的错误来自服务器,而不是浏览器中运行的javascript。所以问题出在您的php脚本中。

那里有一个简单的语法错误:

data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);


应该:

$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
^ here


顺便说一句,当您收到500个错误时,应该始终检查服务器错误日志和/或在php中显示错误:

ini_set('display_errors', 1);


可能与以下内容组合:

error_reporting(E_ALL | E_STRICT);

关于javascript - 在PHP上获取500 Internal Server Error并将 Canvas 另存为图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25457283/

10-17 02:53