在PHP上将Canvas另存为图像时出现500内部服务器错误

时间:2014-08-23 00:24:16

标签: javascript php canvas html5-video

尝试将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内部服务器错误

enter image description here

你能告诉我为什么会这样吗?我怎么能阻止它?

由于

1 个答案:

答案 0 :(得分:1)

您的错误来自服务器,而不是来自浏览器中运行的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);