Foros del Web » Programando para Internet » PHP »

Descarga de archivos .php

Estas en el tema de Descarga de archivos .php en el foro de PHP en Foros del Web. Hola a todos... ...les cuento, estoy haciendo un script que genera archivos .php, y ahora quiero hacer que sea posible descargar desde el servidor, he ...
  #1 (permalink)  
Antiguo 20/11/2007, 06:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 33
Antigüedad: 16 años, 5 meses
Puntos: 0
Descarga de archivos .php

Hola a todos...
...les cuento, estoy haciendo un script que genera archivos .php, y ahora quiero hacer que sea posible descargar desde el servidor, he buscado codigos para forzar la descarga, pero lo que realmente quiero es que no sea interpretado.

Alguien sabe si esto es posible, si hay alguna funcion que permita hacer esto??

Desde ya, muchas gracias.
  #2 (permalink)  
Antiguo 20/11/2007, 08:56
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
Re: Descarga de archivos .php

No es posible, tendrías que enviarlos con otra extensión, o comprimidos con la extension ZIP de PHP.

Este tema no es de PHP Orientado a objetos. Tema trasladado a PHP General.

Porfavor publica en los foros correctos.
  #3 (permalink)  
Antiguo 20/11/2007, 10:01
 
Fecha de Ingreso: noviembre-2007
Ubicación: Córdoba
Mensajes: 70
Antigüedad: 16 años, 5 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.
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 01:10.