Foros del Web » Programando para Internet » PHP »

Descarga en archivo de datos en memoria

Estas en el tema de Descarga en archivo de datos en memoria en el foro de PHP en Foros del Web. Hola Tengo una página que muestra el resultado de una consulta de datos, y además en la misma tengo dos links para descargar a archivos ...
  #1 (permalink)  
Antiguo 02/12/2008, 11:26
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 3 meses
Puntos: 0
Descarga en archivo de datos en memoria

Hola

Tengo una página que muestra el resultado de una consulta de datos, y además en la misma tengo dos links para descargar a archivos el resultado de la página en formato xml y xls.

Una forma de hacerlo es crear href que apunten a los archivos generados en ambos formatos guardados en el servidor.

Lo que necesito es ver si se puede hacer de no tener los archivos guardados en el servidor con los distintos formatos sino generarlos automáticamente cuando el usuario quiera descargarlos en memoria, y no guardarlos en el servidor, pero no se como hacerlo. Esto es para no sobrecargar el servidor con tantos archivos generados.

Alguien me puede dar una ayuda?

Estuve investigando usar tmpfile, lo cual elimina los archivos temporales automáticamente, pero una vez creado el archivo no se como obtener su path completo para mostrarlo en el href

Alguna ayuda?
Gracias
  #2 (permalink)  
Antiguo 02/12/2008, 11:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Descarga en archivo de datos en memoria

Hola etej,

Se puede hacer perfectamente, solamente haces por ejemplo en tu link al <a> que sea a un script php, y le pasas por parámetro el ID de la pagina que quieres descargar y la generas al vuelo sin escribirla en ningun lado.

Saludos.
  #3 (permalink)  
Antiguo 02/12/2008, 12:06
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Descarga en archivo de datos en memoria

hola

mi código es este:
<a href="<?php echo $nombre_fichero_reporte . ".xml"; ?>" target="_blank" > <?php echo $LANGUAGE["xmlformat"] ?> </a> <a href="<?php echo $nombre_fichero_reporte . ".xls"; ?>" target="_blank" > <?php echo $LANGUAGE["xlsformat"] ?> </a>

Ahora apuntan a archivos guardados en el servidor.

Yo estos datos los podría tener en una variable php $xml tendría el contenido en formato xml y $xls tendria el contenido del formato xls

Yo quisiera que el href descargue directamente el contenido de estas variables en archivos en el cliente. No entiendo lo de pasarle al href el ID de la pagina que quieres descargar. Me podrías pasar un ejemplo o pseudocodigo?

gracias
  #4 (permalink)  
Antiguo 02/12/2008, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Descarga en archivo de datos en memoria

Como te comento lo que haces es enlazar a un script .php, donde hagas la generación y descarga de tu script.

Saludos.
  #5 (permalink)  
Antiguo 02/12/2008, 12:28
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Descarga en archivo de datos en memoria

Desde PHP puedes "armar" un fichero..... Hay bastante info de eso aquí, en el manual y en internet (una pieza clave son los headers)
  #6 (permalink)  
Antiguo 02/12/2008, 12:35
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Descarga en archivo de datos en memoria

Parece que la respuesta de vGator no la entendiste.. pues es muy facil generar archivos al vuelo.. y esta es mas o menos la idea principal..

En tu caso lo que debes de hacer es programar un script en php que al recibir un parametro, quizas un Id enviado por url.. se tome ese id y se procese la informacion para generar el archvio y la salida es de tipo xml aunque el script sea php..

Código HTML:
<a href="generaArchivoXML.php?id=2" target="_blank" >
   <?php echo $LANGUAGE["xmlformat"] ?>
</a>

<a href="generaArchivoxXLS.php?id=2" target="_blank" >
   <?php echo $LANGUAGE["xlsformat"] ?>
</a> 
donde generaArchivoXML.php tendria algo como:

Código PHP:
<?php
$id 
$_REQUEST['id'];
// por aqui haces lo que tengas que hacer para generar la salida del archivo
// mientras todo lo guardas en una variable por ejemplo $output
header ("content-type: text/xml");  // haces la salida un archivo xml
echo $output;  // imprimes el contenido
?>
Y lo mismo seria paga generaArchivoXLS.php, lo unico que cambia es el contenido que se generaria.
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 15:48.