[SOLUCIONADO]Cargar imagen en ef_fijo desde archivo php

Buen dia,
Necesitamos cargar una imagen desde ChartDirector, por lo cual se debe ejecutar un archivo plano.php.
Cuando se pide por extension, ejecutar el archivo plano, lo hace bien y muestra la imagen en el una ventana del browser, pero lo que necesitamos es que la imagen sea mostrada en un ef_fijo de un formulario, para lo cual utilizamos el siguiente codigo.

function conf__form_grafica() {
$path = toba::proyecto()->get_www_temp(‘demo.php’);
$url = $path[‘url’];
$datos[‘vista_previa’] = “”;
return $datos;
}

demo.php, retorna la imagen, pero el logo de la imagen se muestra vacia y en su lugar muestra una serie de codigos de maquina.

Concretamente la pregunta seria x toba como se ejecuta el archivo plano demo.php sobre un ef_fijo que es el que genera la grafica ?? es exactamente igual a como si se ejecutara una solicitud de archivo plano. pero NO encontramos la instrucciòn.

Gracias por pronta respuesta.

Trato de cargar la imagen en la temporal, pero a pesar de que esta bien direccionada NO la muestra en el ef_fijo, este es el codigo que llevo y el error que muestra

ERROR stream_copy_to_stream() expects parameter 1 to be resource, string given

function conf__form_grafica() {
//La imagen inicialmente no existe, es creada en get_grafica.
$fp_imagen = ci_consolidado_indicadores::get_grafica ( );
if (isset($fp_imagen)) {
//-- Se necesita el path fisico y la url de una archivo temporal que va a contener la imagen
$temp_nombre = md5(uniqid(time()));
$temp_archivo = toba::proyecto()->get_www_temp($temp_nombre);

	  	//-- Se pasa el contenido al archivo temporal
	  	$temp_fp = fopen($temp_archivo['path'], 'w');
	  	stream_copy_to_stream($fp_imagen, $temp_fp);
	  	fclose($temp_fp);
	  	$tamaño = round(filesize($temp_archivo['path']) / 1024);

	  	//-- Se muestra la imagen temporal
	  	$datos['vista_previa'] = "<img src='{$temp_archivo['url']}' alt=''>";
	} else {
		$datos['vista_previa'] = null;
	}
	return $datos;

}

function get_grafica()	{
   require_once(toba_dir() . '/php/3ros/ChartDirector/lib/phpchartdir.php');
   # The data for the pie chart
   $data = array(25, 18, 15, 12, 8, 30, 35);
   # The labels for the pie chart
   $labels = array("Labor", "Licenses", "Taxes", "Legal", "Insurance", "Facilities", "Production");
   # Create a PieChart object of size 360 x 300 pixels
   $c = new PieChart(360, 300);
   # Set the center of the pie at (180, 140) and the radius to 100 pixels
   $c->setPieSize(180, 140, 100);
   # Set the pie data and the pie labels
   $c->setData($data, $labels);
   # Output the chart
   //header("Content-type: image/png");
   //print($c->makeChart2(PNG));
   return ($c->makeChart2(PNG));
}

Hola Jhon,

pareciera ser que el problema esta en que el metodo ‘makeChart2(PNG)’ devuelve el contenido del archivo y no el puntero al recurso. Lo que deberias hacer es cambiar la llamada stream_copy_to_stream por un fwrite para guardar el contenido de $fp_imagen dentro de $temp_fp.

Saludos

Ingeniero, muchas gracias eso era, finalmente la soluciòn para graficas con ChartDirector mostradas en un ef_fijo queda asì:

function conf__form_grafica() {
$fp_imagen = ci_consolidado_indicadores::get_grafica ( );
if (isset($fp_imagen)) {
//-- Se necesita el path fisico y la url de una archivo temporal que va a contener la imagen
$temp_nombre = md5(uniqid(time()));
$temp_archivo = toba::proyecto()->get_www_temp($temp_nombre);
//-- Se pasa el contenido al archivo temporal
$temp_fp = fopen($temp_archivo[‘path’], ‘w’);
//stream_copy_to_stream($fp_imagen, $temp_fp);
fwrite($temp_fp, $fp_imagen);
fclose($temp_fp);
$tamaño = round(filesize($temp_archivo[‘path’]) / 1024);
$datos[‘vista_previa’] = “<img src=‘{$temp_archivo[‘url’]}’ alt=‘’>”;
} else {
$datos[‘vista_previa’] = null;
}
return $datos;
}

function get_grafica() 	{
     require_once(toba_dir() . '/php/3ros/ChartDirector/lib/phpchartdir.php');
     # The data for the pie chart
     $data = array(25, 18, 15, 12, 8, 30, 35);
     # The labels for the pie chart
     $labels = array("Labor", "Licenses", "Taxes", "Legal", "Insurance", "Facilities", "Production");
     # Create a PieChart object of size 360 x 300 pixels
     $c = new PieChart(360, 300);
     # Set the center of the pie at (180, 140) and the radius to 100 pixels
     $c->setPieSize(180, 140, 100);
     # Set the pie data and the pie labels
     $c->setData($data, $labels);
     # Output the chart header("Content-type: image/png");
     //print($c->makeChart2(PNG));
     return ($c->makeChart2(PNG));
}