Загрузка файла на сайт?
Без базы данных тут не обойтись. В форме загрузке файла - задаёте 3 поля - Название файла (Либо берёте название из загружаемого файла), категория (то, к какому выпадающему пункту меню будет это отображаться) и поле загрузки файла. На сервере уже выполняете всю логику, загружаете файл на сервер (В директорию) - затем в БД создайте таблицу с 3 полями - title|category|url (title - в этой ячейке будет хранится название файла и это же название будет выводиться в меню, category - можете задать id|название категории, как вам удобнее и потом в определенном месте через БД + foreach выводить список, url - относительный путь до файла site.ru/upload/files/file.pdf (к примеру) или - же /upload/files/file.pdf).
Начало вам дано, дерзайте)
$files = glob("папка с файлами/*");
foreach ($files as $one) {
    $name = pathinfo($one,  PATHINFO_FILENAME);
    $name = htmlspecialchars($name);
    $path = urlencode($one);
    echo "<a href='$path'>$name</a><br>"
}