mm Esa sería la idea básica ..
Lo ideal sería componer las cabeceras HTTP adecuadas para que el navegador entienda que los datos que se le van a enviar son para que fuerce su descarga .. así tendríamos llamadas a nuestros scripts de "descargas" tipo:
descargar.php?id=nosecuantos
Sin "desvelar" la ruta física del archivo y con todo el control que esto conlleva para llevar estadísticas de descargas y todo tipo de filtros (ejemplo: autentificación ..)
La idea sería algo tipo:
descargar.php
Código PHP:
<?
// validación de $_GET['file'] .. por tipo .. por ruta ..etc ... Ideal que fuera una referencia del archivo.
header("cabeceras HTTP adecuadas");
readfiel($_GET['file']);
?>
Y el mismo uso de opendir() u dir() para mostrar los archivos de ese directorio indicado, pero el link apuntaría hacia nuestro descargar.php?file=$file
Más info:
dir()
www.php.net/dir
header()
www.php.net/header
Un saludo,