Foros del Web » Programando para Internet » PHP »

Consulta: link que descarga un archivo

Estas en el tema de Consulta: link que descarga un archivo en el foro de PHP en Foros del Web. Hola gente! Estuve armando algo y me quedé en una parte, a ver si me pueden orientar un poco. Tengo un sistema de usuarios muy ...
  #1 (permalink)  
Antiguo 09/09/2008, 14:10
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Consulta: link que descarga un archivo

Hola gente! Estuve armando algo y me quedé en una parte, a ver si me pueden orientar un poco.

Tengo un sistema de usuarios muy sencillo en el cual cada usuario tiene asignado varios archivos individuales para cada uno de ellos para poder bajar y lo hice de esta manera:

Código PHP:

   // conexion a la base
    $conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD");
    mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD");

$nick = mysql_real_escape_string($_SESSION['usuario']);

// Ejecuto la consulta
$sql = "SELECT * FROM usuario WHERE nick_usuario = '$nick'";

$consulta = mysql_query($sql, $conexion);
$row = mysql_fetch_array($consulta);


// Aparecen de esta forma y linkeables
<a href="descarga.php?nom=<? echo $row['archivo'];?>"><? echo $row['archivo'];?></a>
El <? echo $row['archivo']; ?> me trae el NOMBRE del archivo que el usuario tiene asignado en su columna ARCHIVOS. Ese mismo nombre tiene el archivo REAL que se encuentra en una carpeta llamada /archivos/. Bien... a partir de acá es lo que no me sale.

Lo que quisiera hacer es que al hacer click en el enlace, automaticamente me permita descargar ESE archivo, pero que el archivo descarga.php se encargue de buscar dentro del directorio /archivos/ el archivo físico.

Me pareció que se podría hacer de esta forma para que no me muestre en la url el lugar FISICO donde se encuentran los archivos y directamente me permita la descarga del archivo correspondiente al usuario.

Espero puedan darme una mano.
Muchas gracias.

Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 09/09/2008, 15:12
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
Respuesta: Consulta: link que descarga un archivo

Hola marx-pola,

Busca en el foro, la cuestión es abrir el archivo y usar las cabeceras correctas para enviar el archivo al explorador y este se forze en descargarlo.

Saludos.
  #3 (permalink)  
Antiguo 09/09/2008, 15:12
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Consulta: link que descarga un archivo

si, yo lo he hecho =.
y funciona super bien debes forzar la descarga en php
lamentablemente no tengo ni un ejemplo a mano, pero buscando en google encontre este

http://www.webtaller.com/construccio...s_archivos.php


suerte !!!!
__________________
~~[FiDeLio]~~
  #4 (permalink)  
Antiguo 10/09/2008, 06:38
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Consulta: link que descarga un archivo

Genial .php! Ten sencillo como en el link que me pasaste. Solo le modifiqué unas cositas y al final quedó así:

descarga.php
Código PHP:
$enlace "archivos/".$file;
header ("Content-Disposition: attachment; filename=".$file);
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($enlace));
readfile($enlace); 
Y funcionó. Mil gracias por todo.

Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #5 (permalink)  
Antiguo 11/09/2008, 06:49
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Consulta: link que descarga un archivo

Ah! Pequeño detalle amigos... lo acabo de probar online y no me funciona. Me aparece para bajar la página descarga.php y no el archivo que seleccioné.

¿Por qué offline funciona y online no?

Gracias.

-----------------------------------------------

Listo... error de principiante. Me olvidé de tomar el valor por $_GET.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.

Última edición por marx-pola; 11/09/2008 a las 07:04
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 06:53.