archivo "descargas.htm"
Código:
<a href="download_file.php?archivo=asturias.mp3">Asturias - Isaac Albeniz</a>
<a href="download_file.php?archivo=moon_light_sonata.mp3">MoonLight Sonata - Beethoven</a>
archivo "download_file.php"
Código PHP:
$file = $_GET['archivo'];
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($filename));
header('Content-Disposition: attachment; filename=' . basename($file));
readfile($file);
Listo, como puedes ver, el link apunta hacia "download_file.php?archivo=asturias.php"
Todo lo que hay despues del signo de interrogacion son variables que se envian al servidor. PHP automagicamente te pone esas variables en el arreglo GET para que tu puedas accederlas. Entonces esa variable que recibes es la que usas para bajar el archivo que se selecciono.