Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Descargar Archivo según nombre

Estas en el tema de Descargar Archivo según nombre en el foro de PHP en Foros del Web. Hola, Resulta que estoy haciendo una web de documentación y procesos, todo va bien hasta ahora, pero tengo un pequeño inconveniente, lo que pasa es ...
  #1 (permalink)  
Antiguo 16/08/2016, 09:03
 
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 8 años, 11 meses
Puntos: 0
Información Descargar Archivo según nombre

Hola,

Resulta que estoy haciendo una web de documentación y procesos, todo va bien hasta ahora, pero tengo un pequeño inconveniente, lo que pasa es que deseo realizar la descarga de un archivo (que esté alojado en el servidor obviamente) dependiendo del dato que sea digitado en un Input, es decir, si yo digito el número de identificación de una persona, me descargue el archivo que contiene ese número en el nombre, pero no tengo idea de como hacerlo, no sé si fui claro en la explicación

Gracias de antemano por ayudarme
  #2 (permalink)  
Antiguo 16/08/2016, 09:23
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Descargar Archivo según nombre

Puedes hacerlo mediante PHP via comprobaciones(camino largo) o via base de datos... en PHP puro seria por cada numero de identificación algo como:

Código PHP:
Ver original
  1. if($_POST['variable'] == 123456789) { //si llevara guion seria entre comillas "123456-789"
  2. //aqui tu codigo de descarga del archivo o URL ejemplo:
  3. echo "<a href=\"ruta/archivo/archivo.extension\">Descargar</a>";
  4. exit();
}

Y si lo haces via base de datos, pues seria practicamente lo mismo solo que despues del == iria la funcion o procedimiento que contactaria a la base de datos mediante un SQL mas o menos asi:

Código SQL:
Ver original
  1. SELECT archivo_descarga FROM tu_tabla WHERE identificación = '$variable'

La gran diferencia seria que en el primero, harias el procedimiento definido por c/u y en el segundo pueden ser 1,000 y el codigo sera totalmente dinamico, se usara el mismo(1) para todas las consultas
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 16/08/2016, 09:47
 
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Descargar Archivo según nombre

Hola petit89 gracias por tu respuesta,

Quiero hacerlo parecido a como lo planteas en el primer ejemplo, el problema es que deseo bajar el archivo que contenga ese número digitado y almacenado en el POST, ese es mi inconveniente, deseo comparar el nombre de los archivos con lo digitado en el form, y que descargue el que contenga lo digitado.

La segunda opción que me ofreces también la tuve en cuenta, pero, serán muchísimos archivos y esto hará que la BD sea lenta y me puede causar problemas.

Muchas gracias por tu ayuda
  #4 (permalink)  
Antiguo 16/08/2016, 09:57
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Descargar Archivo según nombre

Entonces lo que tienes que hacer es, suponiendo que quieres descargar un pdf y el PDF tiene el mismo nombre que ingresará el usuario:
Código PHP:
Ver original
  1. if($_POST){
  2. $numero = $_POST['numero'];
  3. $ruta = "tu/ruta/de/archivos"; //no cierres con barra
  4.  
  5. if($numero == 123456789) { //si llevara guion seria entre comillas "123456-789"
  6.  
  7. $enlace = $ruta."/".$numero.".pdf";//aqui cambias la extension como quieras
  8. header ("Content-Disposition: attachment; filename=".$numero."pdf");//extension
  9. header ("Content-Type: application/octet-stream");
  10. header ("Content-Length: ".filesize($enlace));
  11. readfile($enlace); //aqui se fuerza la descarga
  12.  
  13. }
  14. }
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 16/08/2016, 10:33
 
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Descargar Archivo según nombre

Gracias por responder,

Ya lo he logrado, muchas gracias!
Solo le hice un cambio, he quitado esta condición:
Código PHP:
if($numero == 123456789
Para que así pueda tomar cualquier archivo alojado en la ruta.

Dejo el código por si le es útil a alguien.

Código PHP:
if($_POST){

$numero $_POST['Tuvariable'];

$ruta "Ruta de archivos"

$enlace $ruta."/".$numero.".jpg";//aqui cambias la extension como quieras

header ("Content-Disposition: attachment; filename=".$numero.".jpg");//extension

header ("Content-Type: application/octet-stream");

header ("Content-Length: ".filesize($enlace));

readfile($enlace); //aqui se fuerza la descarga



Etiquetas: nombre, según
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 16:42.