>После загрузки я спарсил заголовки файла и вывел их для установления соответствия
>после установления соответствия массив $_FILES уже пуст
Как это возможно?
Если у тебя редиректы идут между контроллерами, то сохраняй файл (там где спарсил заголовки) куда-то во временную папку, в сессию добавляй путь на файл и уже в конечной точке вытаскивай путь к файлу из сессии