Foros del Web » Programando para Internet » PHP »

Forzar descarga en un link

Estas en el tema de Forzar descarga en un link en el foro de PHP en Foros del Web. He desarrollado un portal web que contiene una sección de documentos. El problema es que dicha sección contiene unos PDF's demasiado grandes para ser cargados ...
  #1 (permalink)  
Antiguo 15/05/2006, 04:36
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Exclamación Forzar descarga en un link

He desarrollado un portal web que contiene una sección de documentos. El problema es que dicha sección contiene unos PDF's demasiado grandes para ser cargados en el navegador (se ralentizan enteros o directamente se cuelgan los pc's donde intento abrir dichos archivos) con lo cual he intentado crear un script para forzar la descarga al pinchar en el link de cada boletín: que viene a ser tal que así:

Código PHP:
<a href="download.php?archivo=<?php echo $ruta $nombre_archivo;?>"><?php echo $nombre_archivo;?></a>
Mientras que el código de download.php es:

Código PHP:
<?php
    
if (isset ($_GET['archivo'] && !is_null ($_GET["archivo"]))
    {
        
header ("Content-Transfer-Encoding: binary");  
        
header ("Content-type: application/force-download");   
        
header ("Content-Disposition: attachment; filename=" basename ($_GET["archivo"]));  
        
header ("Content-Length: " filesize ($_GET["archivo"]));    
        
readfile ($_GET["archivo"]);
    }
    else
        
header ("Location: index.php");
?>
Lo curioso es que el script ni lanza un mensaje de error, ni se redirecciona al index de la página ni nada de nada...

¿Alguien sabría que es lo que me falla o cómo podría solventar este desafortunado percance?

Muchas gracias por adelantado...
  #2 (permalink)  
Antiguo 15/05/2006, 08:23
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
yo la verdad solo utilizo estos:

header ("Content-Disposition: attachment; filename=$nombre\n\n");
header("Content-Type: application/force-download");
readfile('archivos/'.$_GET['file']);

y siempre sin problemas...
no se q estara pasando..
  #3 (permalink)  
Antiguo 15/05/2006, 09:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
He probado de la manera que tú dices, pero me sigue sin funcionar.

Gracias de todos modos por tomarte la molestia, seguiré intentando a ver si doy con el fallo...
  #4 (permalink)  
Antiguo 17/05/2006, 05:25
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Cita:
Iniciado por Koden
Código PHP:
<?php
    
if (isset ($_GET['archivo'] && !is_null ($_GET["archivo"]))
    {
        
header ("Content-Transfer-Encoding: binary");  
        
header ("Content-type: application/force-download");   
        
header ("Content-Disposition: attachment; filename=" basename ($_GET["archivo"]));  
        
header ("Content-Length: " filesize ($_GET["archivo"]));    
        
readfile ($_GET["archivo"]);
    }
    else
        
header ("Location: index.php");
?>
Al final reparé yo sólo en el error, y es que me faltaba cerrar el paréntesis del isset...
De todos modos, muchas gracias por tu ayuda, Nefertiter.

Un saludo.
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 21:28.