Foros del Web » Programando para Internet » PHP »

Modificar buffer salida para archivo descarga

Estas en el tema de Modificar buffer salida para archivo descarga en el foro de PHP en Foros del Web. tengo el siguiente código para forzar una descarga desde el servidor: Código PHP: $mu = "<direccion_archivo>" ; header ( "Content-Disposition: attachment, filename=" . basename ( $mu )); ...
  #1 (permalink)  
Antiguo 05/10/2008, 22:46
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 10 meses
Puntos: 1
Modificar buffer salida para archivo descarga

tengo el siguiente código para forzar una descarga desde el servidor:

Código PHP:
$mu="<direccion_archivo>";
header("Content-Disposition: attachment, filename=".basename($mu));
header("Content-Type: application/x-msdownload");
readfile($mu); 
cómo puedo hacer para modificar una cadena de texto antes de que el buffer lo envíe al archivo que estoy descargando???

gracias
  #2 (permalink)  
Antiguo 05/10/2008, 23:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Modificar buffer salida para archivo descarga

ábrelo.. léelo, modificalo.. y guárdalo en un temporal, envías el temporal y luego lo borras..
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/10/2008, 01:51
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Modificar buffer salida para archivo descarga

el problema es que los archivos pueden ser muy grandes, más de 1Gb y el cliente no puede esperar a leerlo entero antes de empezar la descarga.

De todas formas lo he solucionado utilizando fopen + fgets en lugar de readfile.

Pero precisamente al dar con archivo de más de 1Gb me he dado cuenta de que el servidor me para la aplicación a los 5 minutos. No sé si abrir un hilo nuevo para esto, pero primero pruebo en este.

Me aparece "CGI application exceeded the allowed time for processing", a los 300 segundos.

En el php.ini tengo todo lo que he visto necesario para que funcionara:

safe_mode = Off
safe_mode_gid = Off
default_socket_timeout = 36000
max_execution_time = 36000

y aparte en el código meto: set_time_limit(0);

qué demonios más hace falta poner para que me permita descargar archivos que necesiten más de 5 minutos ???

gracias de nuevo
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 22:28.