Foros del Web » Programando para Internet » PHP »

problema al exportar un xml en php

Estas en el tema de problema al exportar un xml en php en el foro de PHP en Foros del Web. Estoy trabajando con el framework yii y extJS pero bueno pienso que aqui alguien me pueda ayudar con mi problema. Quiero aclar que esto me ...
  #1 (permalink)  
Antiguo 13/10/2011, 07:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 38
Antigüedad: 14 años, 8 meses
Puntos: 0
problema al exportar un xml en php

Estoy trabajando con el framework yii y extJS pero bueno pienso que aqui alguien me pueda ayudar con mi problema.

Quiero aclar que esto me funciona en linux en windows es que me da problema.

En una acttion de mi controladora yo estoy guardando un xml
Código:
$xml =  "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\" ?>\n";
$xml =  $xml."<root>\n";
$xml =  $xml."  <contrato>\n";
$xml =  $xml."    <idsolicitudcredito>".$idsolicitudcredito."</idsolicitudcredito>\n";
$xml =  $xml."  </contrato>\n";
$xml =  $xml."</root>";

$sfile = '/tmp/contrato.xml';
        $fp = fopen($sfile,"w");
		fwrite($fp,$xml);
		fclose($fp);
En windows lo guarde en
$sfile = "C:\contrato.xml";

pero yo tengo una funcion, que despues que guardo el xml, la llamo para que salga una ventana emergente donde el usuario selecciona donde quiere guardar el xml.

Código:
function guardarxmlAction()
	{
		$sfile = '/tmp/contrato.xml';
		header('Content-type: text/xml');
		header('Content-Disposition: attachment; filename="contrato.xml"');
		readfile($sfile);
		unlink($sfile); 
	}
igual en windows puse
$sfile = "C:\contrato.xml";

Eso me funciona perfectamente en linux pero en windows me da

Warning: Cannot modify header information - headers already sent by (output started at D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php:1) in D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php on line 1123

Warning: Cannot modify header information - headers already sent by (output started at D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php:1) in D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php on line 1124

las lineas 1123 y 1124 son las que tienen los header.
  #2 (permalink)  
Antiguo 13/10/2011, 07:27
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 19 años, 4 meses
Puntos: 36
Respuesta: problema al exportar un xml en php

Hola

La llamada a la función header() es la primera cosa que se debe hacer en un script donde vayas a utilizarla, antes de mostrar cualquier información, espacios o líneas en blanco. ¿Has comprobado que no haces ningún echo ni hay espacios en blanco o líneas en blanco antes de hacer un header()?

Saludos.
  #3 (permalink)  
Antiguo 13/10/2011, 07:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 38
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: problema al exportar un xml en php

kiko cuando yo le doy al boton exportar lo que hago es esto

Código Javascript:
Ver original
  1. function exportarcontrato()
  2.  
  3.     {
  4.  
  5.        Ext.Ajax.request({
  6.  
  7.             url : 'exportarContrato',  
  8.  
  9.             params: {
  10.  
  11.              idcontratoaprobacion: stCondiciones.getAt(0).get('idcontratoaprobacion')  
  12.  
  13.             },         
  14.  
  15.             callback:function(a,b,c){
  16.  
  17.                 location.href = '/finanzas/creditos/administracion/index.php/gestcontrato/guardarxml';
  18.  
  19.             }//fin de la función callback
  20.  
  21.         });//fin del Ajax.request
  22.  
  23.     }

primero creo el xml y lo guardo que es esta funcion

Código PHP:
Ver original
  1. function exportarContratoAction(){
  2. $xml =  "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\" ?>\n";
  3. $xml =  $xml."<root>\n";
  4. $xml =  $xml."  <contrato>\n";
  5. $xml =  $xml."    <idsolicitudcredito>".$idsolicitudcredito."</idsolicitudcredito>\n";
  6. $xml =  $xml."  </contrato>\n";
  7. $xml =  $xml."</root>";
  8.  
  9.         $sfile = '/tmp/contrato.xml';
  10.         $fp = fopen($sfile,"w");
  11.         fwrite($fp,$xml);
  12.         fclose($fp);
  13.        
  14.         echo("{'success' : true}");
  15.     }

y despues mando para la funcion

Código PHP:
Ver original
  1. function guardarxmlAction()
  2.     {
  3.         $sfile = '/tmp/contrato.xml';
  4.         header('Content-type: text/xml');
  5.         header('Content-Disposition: attachment; filename="contrato.xml"');
  6.         readfile($sfile);
  7.         unlink($sfile);
  8.     }//fin de la función guardarxmlAction

No creo que sea algun problema de lo que me dices porque en linux funciona correctamente

Última edición por PLC8407; 13/10/2011 a las 08:07
  #4 (permalink)  
Antiguo 13/10/2011, 08:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: problema al exportar un xml en php

Revisa el mensaje de error:

Warning: Cannot modify header information - headers already sent by (output started at D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php:1) in D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php on line 1123

Warning: Cannot modify header information - headers already sent by (output started at D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php:1) in D:\work\svnCedrux1.1\apps\finanzas\creditos\admini stracion\controllers\GestcontratoController.php on line 1124

Te dice que la salida inicio en GestcontratoController.php en la línea 1, lo más probable es que el tipo de archivo que usas sea un UTF8 con BOM, revisa estos dos temas:

http://www.forosdelweb.com/wiki/PHP:...lready_sent%3F

http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F

Saludos.
  #5 (permalink)  
Antiguo 13/10/2011, 11:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 38
Antigüedad: 14 años, 8 meses
Puntos: 0
[Solucionado]Respuesta: problema al exportar un xml en php

si ya le puse con el notepad++ codificacion ANSI y resuelto el problema

Etiquetas: xml, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.