Foros del Web » Creando para Internet » HTML »

Cómo descargar un XML

Estas en el tema de Cómo descargar un XML en el foro de HTML en Foros del Web. Hola!! Gracias por su atención, tengo un problema y no encuentro como solucionarlo. En mi página tengo que poner un listado de archivos XML para ...
  #1 (permalink)  
Antiguo 28/11/2012, 18:58
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Cómo descargar un XML

Hola!!

Gracias por su atención, tengo un problema y no encuentro como solucionarlo.

En mi página tengo que poner un listado de archivos XML para que puedan acceder a ellos dando clik, pero que no se abran en la página sino que se abra la ventana para guardar el archivo a la máquina.

Los estoy haciendo como un vínculo normal, del tipo:

<a href="http://www.midireccion.com/archivo.xml">Descargar archivo</a>


Desde ya gracias.
  #2 (permalink)  
Antiguo 28/11/2012, 20:13
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Cómo descargar un XML

prueba forzar las descargas con PHP , aquí te dejo una guía

http://www.cristalab.com/tutoriales/...con-php-c166l/
  #3 (permalink)  
Antiguo 29/11/2012, 12:22
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo descargar un XML

Si estás usando apache
Poné todos tus xml "descargables" dentro de una carpeta, y en esta agregá un .htaccess con la siguiente directiva
Código Apache:
Ver original
  1. AddType application/octet-stream .xml
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 29/11/2012, 12:49
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Cómo descargar un XML

Gracias por su ayuda,

Estoy usando el siguiente script:

Código PHP:
Ver original
  1. <?php
  2. $sDirectorio = "http://direccionenotroservidor.com/pruebas/".$carpeta."/".$id;
  3.  header("Content-type: application/force-download");
  4.  header("Content-Disposition: attachment; filename=".basename($_GET["id"]));
  5.  header("Content-Transfer-Encoding: binary");
  6.  header("Content-Length: ".filesize($sDirectorio));
  7.  readfile($sDirectorio);      
  8. ?>

Me descarga el archivo, pero sin información.

No mencioné que tengo diferentes archivos en diferentes carpetas, todas almacenadas en una dirección diferente a donde tengo la pagina web con el listado de archivos.

Y como ya indiqué, me descarga el archivo pero no tiene información :(

Gracias!!
  #5 (permalink)  
Antiguo 29/11/2012, 16:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo descargar un XML

No te descarga nada porque al momento de definir $sDirectorio $id es una variable no definida y $carpeta, otro tanto, a no ser que estés usando, lo cual es mu dudoso, register_globals = on

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 29/11/2012 a las 18:13 Razón: ortografía
  #6 (permalink)  
Antiguo 29/11/2012, 17:48
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Cómo descargar un XML

Gracias emprear,

Buena observación, en la configuración local si tengo register_globals = on, pero en el servidor que es donde realmente va a quedar la página están en Off.

Y si se abre la ventana para guardar, lo guardo se guarda el archivo con el nombre que está almacenado, pero cuando abro el archivo descargado está totalmente en blanco.

Si es posible forzar la descarga de los archivos que se encuentran en otro servidor??
  #7 (permalink)  
Antiguo 29/11/2012, 18:12
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo descargar un XML

En otro server?
Probá con file_get_contents en lugar de readfile, pero no sé tendría que verificarlo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 29/11/2012, 18:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo descargar un XML

Agrego, si funciona

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/xml');
  3. header("Content-Disposition:attachment ; filename=archivo.xml");
  4. header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
  5. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  6. header("Cache-Control: no-store, no-cache, must-revalidate");
  7. header("Cache-Control: post-check=0, pre-check=0", false);
  8. header("Pragma: no-cache");
  9.     ob_clean();
  10.     flush();
  11.  
  12.     echo file_get_contents("http://foros.emprear.com/xml/cdcatalog.xml");
  13.  
  14.     exit;
  15.  
  16. ?>

ojo, que no usé variables ni nada, pasé el nombre del la url y el nombre del archivo de descarga directamente

Demo
http://foros.emprear.com/xml/descargarxml.php

Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 30/11/2012, 11:26
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Cómo descargar un XML

Gracias emprear,

Si es lo mismo que me pasa, aparentemente se descarga el archivo porque si se guarda un archivo a tu máquina, pero ese archivo está en blanco no tiene información.

A qué se deberá esto??
  #10 (permalink)  
Antiguo 30/11/2012, 11:47
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: Cómo descargar un XML

emprear, ya ví que en tu demo si descarga el archivo completo.

Pero si lo hago con tu código sólo baja el archivo pero sin información.

Gracias!!
  #11 (permalink)  
Antiguo 30/11/2012, 13:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo descargar un XML

Para el ejemplo que dejé
allow_url_fopen deb de estar en 1 (por defecto asi viene en php),
intentá crear tu ejemplo sin variables, poniendo las rutas a mano.

Otra alternativa es que uses curl()

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/xml');
  3. header("Content-Disposition:attachment ; filename=archivo.xml");
  4. header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
  5. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  6. header("Cache-Control: no-store, no-cache, must-revalidate");
  7. header("Cache-Control: post-check=0, pre-check=0", false);
  8. header("Pragma: no-cache");
  9.  
  10. $url = curl_init("http://foros.emprear.com/xml/cdcatalog.xml");
  11. $salida = curl_exec ($url);
  12. curl_close($url);
  13. ?>

Demo:

http://foros.emprear.com/xml/descargarxml2.php

si es posible pasá la url del xml que querés bajar

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: página, xml
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 08:29.