我正在尝试在PDF导出报告中显示融合3D饼图。为此,我的目标是创建图表的图像,并在图表渲染后自动将其保存在服务器中,以便我可以在我的pdf文件中调用该图像。我已经设置了导出的图表参数,如下面的代码
<chart caption='testchart' exportEnabled='1' exportAtClient='0' exportAction='save' exportFileName='testimage'exportHandler='http://mysite.com/pdf/getChartExported'>
在我的导出处理程序文件中,我还设置了“SAVE_PATH”和“HTTP_URI”常量的路径。
我的问题是 1.如何在页面加载后将图表导出并保存为图像 2.在导出处理程序中,我得到并出错(我正在使用Codeigniter)
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: libraries/FCExporter.php
Line Number: 304
DOMId=
height=0
width=0
fileName=
statusMessage= Export Resource not found.
statusCode=0
当我检查时,在FCExport处理程序文件函数$defaultParameterValues
parseExportParams()
为空
过去几天我一直在研究这个问题。请帮帮我
答案 0 :(得分:1)
不知何故,我不确定,如何以及为什么我不知道你是否修改了代码的任何部分,即全局$defaultParameterValues
,我发现php文件定义如下:
$defaultParameterValues = array(
"exportfilename" => "FusionCharts",
"exportaction" => "download",
"exporttargetwindow" => "_self",
"exportformat" => "PDF"
);
未在函数parseExportParams
内被引用,从而得到一个无法迭代的未定义数组!!
解决此问题的一种方法是从FusionCharts包中获取原始FCExporter.php
,然后将其替换为您自己的,或者对这两个文件进行差异检查,以检查是否在任何破坏此问题的地方进行了修改。
另一种方式是:
检查$defaultParameterValues
是否为数组,如果不是,则实例化它。
if (!isset($defaultParameterValues)) {
$defaultParameterValues = array();
}
同时,还有另一种方法可以使用默认值扩展参数:
修改parseExportParams
以替换现有的:
foreach ( $defaultParameterValues as $key => $value )
{
// if a parameter from the default parameter array is not present
// in the $params array take the parameter and value from default
// parameter array and add it to params array
// This is needed to ensure proper export
$params [$key ] = @$params[$key ] ? $params[$key ] : $value ;
}
与
if (isset($defaultParameterValues) && is_array($defaultParameterValues)) {
$params = $params + $defaultParameterValues;
}