我如何保存谷歌图表PNG与PHP
How can I save a Google Chart PNG with PHP?
我有一个图表,我已经与谷歌图表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请求以保存文件
$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文件生效了
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 将数组从PHP传递到Javascript
- 如何在php文件中获取$.post-ajax传递的值
- Javascript运行php文件,然后下载文件
- PHP中的setcookie仅适用于localhost
- 如何使用jquery处理php循环通过元素
- 使用AJAX从PHP获取PNG图像
- 使用PHP将png/svg导出为单个png文件
- 将 png 图像从 JavaScript 传递到 PHP(错误:请求 URI 太大)
- SVG 到 PNG 下载器 PHP
- 尝试通过php include放置png图像..这怎么可能
- 如何使用PHP将画布保存为PNG图像
- 截取当前屏幕的屏幕截图,并通过php将其保存为PNG图像
- 如何保存画布作为一个png在本地主机通过php脚本与图像加载到画布
- 转换谷歌图表为PNG图像自动当我运行php文件在命令行(不在浏览器)
- 动态改变png的颜色(PHP/JS)
- 从通过 ajax 发送的 dataURI 生成带有 php 的 png 文件
- 我如何保存谷歌图表PNG与PHP