[英]How can I save a Google Chart PNG with PHP?
我有一個使用Google Charts API生成的圖表,我想另存為圖像文件。 我使用PHP將其保存到文件中,但是無效。
我需要做什么。
JavaScript的
var chart = new google.visualization.PieChart(document.getElementById('chart_div_source'));
chart.draw(data, {width: 450, height: 300, title: 'Course Payment Breakdown'});
jQuery.post("action_save64png.php", {pngImageData :chart.getImageURI(), CourseID: 23, charttype: 'incomesplit' });
這將生成圖表並向action_save64png.php
發出ajax請求以保存文件
PHP文件
$EncodedPNG = $_POST['pngImageData'];
$FileName = 'chart_'. $_POST['CourseID'] . '.png';
$decoded=base64_decode($EncodedPNG);
file_put_contents('../charts/' . $FileName,$decoded);
這會保存文件,但是當我嘗試打開它時,它是無效的png。
我需要做些什么?
原來,在PNG 64位字符串的開頭有一個字符串
data:image/png;base64,
必須先將其刪除。
$EncodedPNG = $_POST['pngImageData'];
//Replace spaces with +
$EncodedPNG = str_replace(' ','+',$EncodedPNG);
//Remove identifier string from begining of data.
$EncodedPNG = str_replace('data:image/png;base64,', '', $EncodedPNG);
$FileName = 'chart_'. $_POST['CourseID'] . '.png';
$decoded=base64_decode($EncodedPNG);
file_put_contents('../charts/' . $FileName,$decoded);
現在png文件有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.