создаешь таблицу :
files_to_download :
key - уникальная строка типа ee046f35e2019b4e6194405788e52cf7
file_id - ссылка на идентификатор файла из твоей таблицы файлов
time - время создания записи.
Когда юзер хочет скачать файл, генерируешь уникальный key, добавляешь новую запись в таблицу files_to_download и выдаешь ему ссылку :
http://example.com/download.php?file=file_name&key=$key
И предупреждаешь, что ссылка действует в течение, скажем, 5 часов.
Скрипт download.php проверяет file_name, $key, проверяет, чтобы у этой ссылки не истек срок годности и если все ок, то просто читает файл возвращает его юзеру.
Вопросы ?