Единственная критическая часть массива $ _FILES для любого конкретного запроса - это часть ...['tmp_name']
, поскольку она указывает, где PHP сохранил загруженный файл. Сохраните копию $ _FILES, которая настроена так, как вы хотите тестировать (с любым количеством файлов), затем вручную измените имя tmp_name, чтобы оно указывало на реальные файлы на вашем сервере, а не на случайные имена мусора, которые PHP автоматически назначает для загрузки и вы сможете повторно использовать копию данных столько раз, сколько захотите, если ваши сценарии не перемещают / не удаляют / не восстанавливают файлы, на которые вы указываете.
Итак, что-то вроде:
$_FILES['file1']['tmp_name'] = '/path/to/file/to/test/with';
$_FILES['file2']['tmp_name'] = '/some/other/path/or/file/for/testing';
$savedfiles = serialize($_FILES);
и тогда вы можете вставить
$_FILES = unserialize($savedfiles);
везде, где это подходит для тестирования вашего приложения.