Foros del Web » Programando para Internet » PHP »

Forzar download no vuelve

Estas en el tema de Forzar download no vuelve en el foro de PHP en Foros del Web. Hola a todos, estoy con un problema que me tiene loco. Tengo un listado de archivos en el cual hay algunos que para poder descargarlos ...
  #1 (permalink)  
Antiguo 22/10/2008, 07:13
 
Fecha de Ingreso: agosto-2002
Ubicación: Capital Federal
Mensajes: 98
Antigüedad: 21 años, 8 meses
Puntos: 1
Forzar download no vuelve

Hola a todos, estoy con un problema que me tiene loco.

Tengo un listado de archivos en el cual hay algunos que para poder descargarlos hay que estar logueado, cuando el usuario hace click verifico si el tipo de archivo esta protegido, si es asi lo envio a la pagina de login, hasta ahi todo bien, el tema que una vez logueado lo redirecciono para que baje el archivo, me aparece la ventana para guardar, pero no se como hacer para que vuelva a la pagina de listado de archivos, he probado con header pero no funciona. Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 22/10/2008, 07:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Forzar download no vuelve

Habría que ver el código.... Una vez logueado, ¿cómo haces la redirección? ¿qué página se queda cuando comienza la descarga?
  #3 (permalink)  
Antiguo 22/10/2008, 07:30
 
Fecha de Ingreso: agosto-2002
Ubicación: Capital Federal
Mensajes: 98
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Forzar download no vuelve

este es el codigo:
Código php:
Ver original
  1. header("Content-type: application/octet-stream");
  2.     header("Content-Disposition: attachment; filename=\"$f\"\n");
  3.     $fp=fopen("$f", "r");
  4.     fpassthru($fp);
  5.     exit;
  6.   header("Location:archivos_list.php");
y queda en la pantalla de login
  #4 (permalink)  
Antiguo 22/10/2008, 07:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Forzar download no vuelve

Probablemente el header location no funcione después de mandar las otras cabeceras (pero no estoy seguro de ello). Puedes probar a hacer otro tipo de redirección:

<meta http-equiv="refresh" content="segundos"; url="url destino" />

O con un window.location de JavaScript.
  #5 (permalink)  
Antiguo 22/10/2008, 08:02
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Forzar download no vuelve

Que tal Tato, y no será por el exit() que tienes antes del header? prueba quitandoselo

Código PHP:
header("Content-type: application/octet-stream");    
header("Content-Disposition: attachment; filename=\"$f\"\n");    
$fp fopen("$f""r");    
fpassthru($fp);    
//exit;  Aqui terminaria el script en tu caso
header("Location:archivos_list.php"); 

Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #6 (permalink)  
Antiguo 22/10/2008, 08:05
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Forzar download no vuelve

Coño, es cierto. Ese exit debería ir debajo del location (no es estrictamente necesario, pero sí muy recomendable).

De todos modos, ¿se puede mandar un header(location) después de las otras dos cabeceras?
  #7 (permalink)  
Antiguo 22/10/2008, 08:15
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Forzar download no vuelve

Uhmmm, tienes razón keysher no es posible redireccionar despues de enviar el archivo, no me habia fijado bien.




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #8 (permalink)  
Antiguo 22/10/2008, 08:58
 
Fecha de Ingreso: agosto-2002
Ubicación: Capital Federal
Mensajes: 98
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: Forzar download no vuelve

Entonces voy a probar con
<meta http-equiv="refresh" content="segundos"; url="url destino" />
Gracias hoy lo pruebo
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 13:03.