Si estás planteando un "id" es porque seguramente extraerás el archivo de una BD. No especificas cómo es que guardas el archivo en dicha BD ni que BD usas.
El código necesario lo encuentras en
www.php.net/readfile ó en
www.php.net/header Igual busca por "forzar descarga" dentro de el foro.
Verás scripts que trabajan a partir de la hubicación del archivo (su ruta), entonces antes de dicho script cosulta esa id recibida por URL ($_GET), extrae la ruta de la BD (suponiendo es lo que guardas) y aplica esa ruta a el script indicado...
Igual si los archivos serán de diferentes tipos necesitarás guardar el MIME_TYPE en la BD para, de igual manera aplicarlo para forzar la descarga.
Suerte!