Проблема решена может кому пригодится)
foreach ($files_chunk as $chunk) {
$data_file = $this->curlFile($chunk, $browser, $dn_id);
// Обрабатываем каждый файл отдельно
foreach ($data_file as $file) {
// Получаем имя файла из массива $names на основе URL
$original_name = $names[$file['url']];
// Принудительно задаем расширение .zip
$ext = '.zip';
// Оставляем только латиницу и подготавливаем имя файла для загрузки на сервер с солью
$name = $this->symbolToEn($original_name);
$name_file = $name . $ext . '.' . md5(microtime(true)); // Имя файла на диске
$filename = $dir . '/' . $name_file; // Ссылка на файл в базе данных поле filename
$name_mask = $name . $ext; // Имя файла в базе данных, это маска
// Формируем ссылку из названия файла (с расширением)
$link = $name . $ext; // Ссылка для БД, основанная на названии файла
// Записываем файл на диск
file_put_contents($path . '/' . $name_file, $file['file']);
// Записываем данные по загруженным файлам
$data[] = [
'filename' => $filename, // Полный путь к файлу на диске
'mask' => $name_mask, // Имя файла для отображения
'name' => $original_name, // Исходное название файла
'link' => $link // Ссылка, основанная на названии файла
];
}
}