En ese caso .. haz tu consulta SQL a tu BD para obtener ese nombre de archivo para ese registro .. algo tipo:
descargar.php Código PHP:
<?
// conecta a tu BD .. etc ..
$sql="SELECT nombre_archivo FROM archivos WHERE id_registro='".$_GET['id_registro']."'";
$result=mysql_query($sql) or die (mysql_error());
$nombre_archivo=mysql_result($result,0,"nombre_archivo");
// Compon tus cabeceras HTTP para enviar el archivo según el tipo que sea este:
// Almacenas en tu BD el formato MIME de tu archivo que subistes? .. Sería lo ideal.
// Ejemplo para un documento tipo pdf:
// Enviaremos un PDF
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.basename($nombre_archivo).'"');
// Con basename() nos quedamos con el nombre sólo del archivo (por si tuviese ruta incluida. El "filename" de la cabecera HTTP "content-disposition" define el nombre del archivo que se te será ofrecido en su descarga.
// No tiene nada que ver con el nombre del archivo original .. aunque suele uno hacerlos coincidir.
// y entregas el archivo al buffer de salida previa lectura del mismo de tu sistema de archivos. Todo esto lo puedes hacer con la función:
readfile($nombre_archivo); // añade tu ruta si corresponde al nombre del archivo ...
?>
Y lo usarías generando links hacia ese script (que ha de trabajar de forma individual tal cual .. no añadas NADA de HTML ni otras salidas al mismo):
Código PHP:
<a href="descargar.php?id_archivo=n°">descargar archivo</a>
Un saludo,