我有一個highcharts svg,我通過canvg轉換爲png並顯示在網頁上。然後我想將這個PNG發送到服務器以創建一個圖像鏈接。我下面的答案代碼另一個話題:將服務器上的Canvas另存爲圖像時出現setRequestHeader錯誤
Renaming an image created from an HTML5 canvas
我的javascript代碼如下:
var timeout = window.setTimeout(function() {
canvg(document.getElementById('canvas'), chart.getSVG());
}, 10000);
var canvas = document.getElementById("canvas");
var img = canvas.toDataURL("images/png");
document.write('<img src="'+img+'"/>');
saveDataURL(img)
function saveDataURL(canvas) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
window.location.href = request.responseText;
}
};
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.open("POST", "saveDataURL.php", true);
request.send("dataURL=" + canvas.toDataURL());
}
我的PHP叫saveDataURL.php則是:
$dataURL = $_POST["dataURL"];
$encodedData = explode(',', $dataURL)[1];
$decodedData = base64_decode($encodedData);
file_put_contents("temp/faizan.png", $decodedData);
echo "http://whichchart.com/temp/faizan.png";
在firefox 12在「request.setRequestHeader」這一行發出以下錯誤:
Component returned failure code: 0x804b000f (NS_ERROR_IN_PROGRESS) [nsIXMLHttpRequest.setRequestHeader] http://whichchart.com/oil.js Line 102
在鉻上同一行中的錯誤是:
Uncaught Error: INVALID_STATE_ERR: DOM Exception 11 saveDataURLoil.js:106 (anonymous function)
的例子可以在這裏看到:whichchart.com。你能幫我嗎?謝謝。