Forzar descarga de archivos + esconder URL física
Autor: David
El otro día comentaba como hacer un upload de archivos, hoy vamos a ver como podemos descargar esos archivos, forzando la descarga y además como podemos esconder la URL física del archivo.
Primero voy a poner un ejemplo de la primer parte, creamos un archivo download.php:
PHP:
Con este ejemplo ya estariamos forzando la descarga de un archivo que se encuentra en el directorio "archivos", para descargarlo simplemente lo llamariamos así:
HTML:
-
<a href="download.php?file=mi_archivo.jpg">Descargar</a>
Este código podemos mejorarlo de forma que no incluyamos el nombre físico (filename) del archivo en la variable, por ejemplo incluyendo un ID de archivo que luego transformaremos en el código o mediante una consulta a una base de datos.
Por ejemplo:
HTML:
-
<a href="download.php?id=12345678">Descargar</a>
PHP:
-
<?php
-
$nombre=false;
-
//asignamos el nombre según el ID
-
//también podemos hacer una consulta a una base de datos
-
if($_GET['id']=="12345678"){$nombre="mi_archivo.jpg"}
-
-
if($nombre){
-
//direccion real del archivo
-
$url='archivos/'.$nombre;
-
-
}
-
else{
-
echo 'Error: el archivo no existe';
-
}
-
?>

muchas gracias amigo me fue de mucha ayuda este scripts habia encontrado otros pero no me dieron buenos resultados este funciona perfecto