【问题标题】:JpGraph error in PHP image saving permission: "JpGraph Error: 25107"PHP图像保存权限中的JpGraph错误:“JpGraph错误:25107”
【发布时间】:2015-03-11 09:47:41
【问题描述】:

我的 PHP JpGraph 代码显示类似

的错误
The image "http://localhost/jpeg/src/Examples/x.php" cannot be displayed
because it contains error

当我搜索帖子herehere 时,指出的主要问题是开头或结尾的空白 或标题的问题。但我找不到空格(我希望标题没问题,因为它是一个最简单的手动示例)。

只是为了尝试,我尝试保存图像而不是在浏览器中显示。但它显示了另一个问题,JpGraph 错误:25107 无法写入文件,php 进程没有权限。但是在搜索了一些来源后我无法解决第二个错误。我担心我是否走错了路,做一些盲目的事情。谁能指导我?

我使用代码生成JpGraph:

<?php 
ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);
require_once('jpgraph/jpgraph.php');
require_once('jpgraph/jpgraph_matrix.php'); 

$data = array(
array(0,1,2,3,4,5,6,7,8,9,10),
array(10,9,8,7,6,5,4,3,2,1,0),
array(0,1,2,3,4,5,6,7,8,9,10),
array(10,9,8,17,6,5,4,3,2,1,0),

); 

$graph = new MatrixGraph(400,300);
$graph->title->Set('Basic matrix example');
$graph->title->SetFont(FF_ARIAL,FS_BOLD,14); 

 $mp = new MatrixPlot($data);
 $graph->Add($mp); 
//$graph->Stroke(); 
$graph->Stroke("myimage.png");
?>

【问题讨论】:

  • 为了确保图像数据前后没有空格,请尝试从浏览器(ctrl+s)保存文件,然后在十六进制编辑器中打开它,从而避免权限错误。
  • 您可能在图像内打印了警告或其他内容。正如 Raphael 所说,尝试保存它,看看 PHP 是否没有在里面添加愚蠢的东西。
  • 正如我所提到的,将 png 图像定向到浏览器会导致黑屏并显示错误 image"localhost/jpeg/src/Examples/x.php" 无法显示,因为它包含错误。我将其保存为 png (ctrl+s)。使用 gedit 打开保存的 png 文件时,显示“您打开的文件包含一些无效字符。如果您继续编辑此文件,您可能会损坏此文档。您也可以选择其他字符编码并重试。(但此警告打开普通 png 文件时也会出现错误
  • 感谢@RaphaelSchweikert 和 Jérôme Mahuet 的指导。

标签: php jpgraph


【解决方案1】:

使用根路径访问您的文件。

$fileName = dirname(__FILE__, 5).'/uploads/invoices/g.jpg';

【讨论】:

    【解决方案2】:

    这可能是由页面上的额外空白引起的。确保在打开

    【讨论】:

      【解决方案3】:
      Please try this
      
      require_once ('jpgraph/src/jpgraph.php');
      require_once ('jpgraph/src/jpgraph_pie.php');
      // Some data
      
      $data = array(30,70);
      
      // Create the Pie Graph. 
      $graph = new PieGraph(350,250);
      
      $theme_class="DefaultTheme";
      //$graph->SetTheme(new $theme_class());
      
      // Set A title for the plot
      //$graph->title->Set("A Simple Pie Plot");
      $graph->SetBox(true);
      
      // Create
      $p1 = new PiePlot($data);
      $graph->Add($p1);
      
      $p1->ShowBorder();
      $p1->SetColor('black');
      $p1->SetSliceColors(array('#baeeff','#1ac6ff'));
      //$graph->Stroke();
      $graph->Stroke(dirname(__FILE__).'/images/pieChart.png');
      
      //Image URL like:http://localhost/jpgraph_text/images/pieChart.png
      echo '<img src="'.$image_url.'" />';
      

      【讨论】:

        【解决方案4】:

        我刚刚遇到了这个问题。 “JpGraph 错误:25107 无法写入文件....” 我更改了图像文件的权限。 chmod 777 文件名。 然后它就起作用了。 希望它会有用。

        【讨论】:

          【解决方案5】:

          我解决了这个问题。由于空白,这是一个问题,但在某些源文件中。这是我克服错误所遵循的两个步骤,

          1. 在 php.ini 文件中,将输出缓冲设置为 0 而不是 4096。

          2. 在源文件(jpgraph_matrix.php 和 jpgraph_glayout_vh.inc.php)中,开头和结尾有一些额外的空白。完成第一步(设置缓冲区)后,包含文件和行的空白区域将显示在浏览器中。删除这些线后,将生成图形。

          【讨论】:

            猜你喜欢
            • 2012-06-21
            • 1970-01-01
            • 2013-04-17
            • 2015-11-22
            • 2011-10-20
            • 2023-03-11
            • 2016-11-05
            • 1970-01-01
            • 2014-06-08
            相关资源
            最近更新 更多