Ovviamente con il database è più semplce perchè passi allo script per il download l'id della riga dove poi vai a prendere il path del file. Senza devi passargli il nome del file, con conseguenti operazioni extra (filtrare il nome del file e/o codificare il nome del file se contiene caratteri speciali).
Se non hai sotto-cartelle puoi fare una cosa del genere:
lista dei file:
Codice PHP:
$dir = 'path_possibilmente_assoluto_alla_cartella/*.pdf'; // solo i pdf
foreach(glob($dir) as $file) {
$fname = basename($file);
// $fname = urlencode($fname); Nel caso hai nomi dei file con carattei speciali. Ricordati di usare urldecode() quando lo vai a riprendere
echo '<a href="download.php?name='.$fname.'" >'.$fname.'</a><br/>';
}
Lo script per il download è lo stesso di quello che ti ho postato. l'unica differenza è che basename() ti restituisce anche l'estensione del file