我正在使用LibChart。它工作正常,但是,我有一个问题。我不确定它是否直接链接到库,更多的是我可能遗漏的一般php / image事物。
事情是,图像不会自动更新(包含图形的图像),除非我重新上传绘制它的PHP文件。这就是图表的制作方法,使用LibChart
$chart->render("generated/demo4.png");
将其渲染到该文件中,然后使用
显示它<img alt="Line chart" src="generated/demo4.png" style="border: 1px solid gray; float: right;"/>
效果很好,但只是第一次绘制。除非我重新上传绘制它的文件,否则它不会重绘图像。这有点糟糕,因为它从数据库中提取数据,当它发生变化时,它需要反映在图表中。
可能是什么问题? 如何在不重新上传文件的情况下重绘图像?
答案 0 :(得分:1)
您使用的是哪种互联网浏览器? 其中一些(例如IE)将图像存储在内部存储器中(以便更快地渲染网站)。您可以将渲染的图形保存在文件中,然后在变量中再次加载它,最后这个变量显示为base64数据。
$path = "tmp/graph.png";
$chart->render($path);
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
return "<img src=\"data:image/".$type.";base64,".base64_encode($data)."\" />";
这有点奇怪,但它对我有用。现在我正在寻找更好的解决方案。