Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/11/2007, 10:01
javierav
 
Fecha de Ingreso: noviembre-2007
Ubicación: Córdoba
Mensajes: 70
Antigüedad: 12 años, 2 meses
Puntos: 1
Re: Descarga de archivos .php

Hola.

Si, es posible hacer lo que dices. No directamente pero si indirectamente. Esos script que generas.. ¿los guardas en el disco duro del servidor o directamente los lanzas "al vuelo" al navegador?

Si los tienes guardados en el disco duro, debes enviar primero una cabecera que fuerce la descarga, como puede ser:

Código PHP:
//Enviamos las cabeceras http, que fuerzan la descarga de un archivo
if(isset($HTTP_SERVER_VARS['HTTP_USER_AGENT']) && strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT'],'MSIE'))
{
    
header('Content-Type: application/force-download');
}
else
{
    
header('Content-Type: application/octet-stream');

Y luego usar la función readfile para leer el archivo y volcarlo a la salida...
Código PHP:
header('Content-Length: '.$file_size);//Cabecera con el tamaño del archivo
header('Content-disposition: attachment; filename='.$file_name); //Cabecera con el nombre del archivo
@readfile($file_path); 
Esto está probado y funciona. Supongo que si lo generas al vuelo, deberás hacerlo en sustitución de la función readfile, y aunque no lo he probado, deberá funcionar igualmente. Debes eso si imprimir el código php con echo. Como lo hace php y no el servidor, no pasa por el interprete. Ya nos contarás que tal.

Saludos.