fwrite PNG创建零字节的文件

时间:2014-03-19 00:28:07

标签: javascript php highcharts png fwrite

我有一个' export'自定义脚本,以各种格式输出一堆highcharts图表,包括.xls,.png和.PDF。该脚本在我的个人笔记本电脑上运行良好,但是当我尝试在客户端的公司cpu / network上运行时,PNG导出失败。

我很确定这不是权限问题。该脚本创建PNG文件并根据需要删除它们,我可以看到文件被添加到可写文件夹然后被删除。只是文件都是0kb。脚本完成后,应该组合所有PNG的文件也是0kb。

因此我认为这是fwrite函数的一个问题,但我很困惑为什么它在我的笔记本电脑上工作但不在客户端cpu上工作。这可能是浏览器问题吗?他们使用IE 9.以下是相关代码:

    <?php

/**
 * 
 */
class actions_exportcsv {



    private static function hcexport($post_string) { //echo $post_string; die;
        // curl init
        $ch = curl_init("http://export.highcharts.com/");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt_array($ch, array(
            CURLINFO_HEADER_OUT => true,
            CURLOPT_POST => 1,
//            CURLOPT_HTTPHEADER     => array(
//                "Content-Type: multipart/form-data; boundary=---------------------------26008479621944;",
//                "Content-Length: ".  strlen($post_string).";",
//            )
        ));
        // curl exec
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        //set data to be posted
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
        $data = curl_exec($ch);
        $resultStatus = curl_getinfo($ch);
        //print_r($resultStatus);  
        curl_close($ch);
        return $data;
    }

}

?>

希望你能帮助我,并了解正在发生的事情......祝你有美好的一天!

编辑:请在下面找到错误日志的相关位:

[19-Mar-2014 01:57:39 Europe/Berlin] PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\Raptor\xataface\Dataface\Application.php on line 576
[19-Mar-2014 01:57:39 Europe/Berlin] PHP Notice:  Undefined variable: ENV in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 177
[19-Mar-2014 01:57:39 Europe/Berlin] C:/xampp/htdocs/Raptor/18.png
[19-Mar-2014 01:57:43 Europe/Berlin] PHP Notice:  Undefined variable: ENV in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 177
[19-Mar-2014 01:57:43 Europe/Berlin] C:/xampp/htdocs/Raptor/22.png
[19-Mar-2014 01:57:47 Europe/Berlin] PHP Notice:  getimagesize(): Read error! in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 225
[19-Mar-2014 01:57:47 Europe/Berlin] PHP Notice:  getimagesize(): Read error! in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 226
[19-Mar-2014 01:57:47 Europe/Berlin] PHP Warning:  imagecreatetruecolor(): Invalid image dimensions in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 230
[19-Mar-2014 01:57:47 Europe/Berlin] PHP Warning:  imagecreatefrompng(): '18.png' is not a valid PNG file in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 233
[19-Mar-2014 01:57:47 Europe/Berlin] PHP Warning:  imagecreatefrompng(): '18.png' is not a valid PNG file in C:\xampp\htdocs\Raptor\actions\exportcsv.php on line 234

2 个答案:

答案 0 :(得分:0)

确保向服务器询问正确的文件夹。还要确保具有图像的文件夹是可由服务器读取和写入的。

在php中运行后端代码时,这不是浏览器问题。你在两台电脑上运行相同的php版本吗?尝试检查它们是否以相同的方式配置,可能是未加载的php / apache模块。

答案 1 :(得分:0)

根据您发布的日志,以下是我能看到的直接问题。修复它们,如果它仍然不起作用,发布日志,我将添加到我的答案:

尚未定义ENV。 ENV似乎是xampp文件夹的路径,但这里未定义,这意味着您可能没有指向正确的文件。然后,也许你是因为它创建了一个空文件。

您没有发布所有代码。请发布日志中提到的所有代码,我将修改我的答案:

177,225,226,230,233,234

最好只发布第177行的整个函数或至少一些有意义的上下文,对于226和230-234也是如此。

很明显,实际上并没有创建图像,因此正在将false或者PHP处理它的任何内容写入文件。做到以上,我可以更好地回答。