# Класс HttpSoft\UploadedFile\UploadedFileNormalizer
Нормализует структуру дерева загружаемых файлов, где каждый элемент массива является экземпляром Psr\Http\Message\UploadedFileInterface.
use HttpSoft\UploadedFile\UploadedFileNormalizer;
// Пример #1
print_r($_FILES);
/*
[
'file' => [
'name' => 'file.txt',
'type' => 'text/plain',
'tmp_name' => '/tmp/phpN3FmFr',
'error' => UPLOAD_ERR_OK,
'size' => 1024,
],
];
*/
print_r(UploadedFileNormalizer::normalize($_FILES));
/*
[
'file' => `HttpSoft\UploadedFile\UploadedFile Object`,
];
*/
// Пример #2
/*
[
'file_1' => [
'name' => 'file.txt',
'type' => 'text/plain',
'tmp_name' => '/tmp/phpN3FmFr',
'error' => UPLOAD_ERR_OK,
'size' => 1024,
],
'file_2' => [
'name' => 'image.png',
'type' => 'image/png',
'tmp_name' => '/tmp/phpLs7DaJ',
'error' => UPLOAD_ERR_OK,
'size' => 98760,
],
];
*/
print_r(UploadedFileNormalizer::normalize($_FILES));
/*
[
'file_1' => `HttpSoft\UploadedFile\UploadedFile Object`,
'file_2' => `HttpSoft\UploadedFile\UploadedFile Object`,
];
*/
// Пример #3
print_r($_FILES);
/*
[
'files' => [
'name' => [
'file_1' => 'file.txt',
'file_2' => 'image.png',
],
'type' => [
'file_1' => 'text/plain',
'file_2' => 'image/png',
],
'tmp_name' => [
'file_1' => '/tmp/phpN3FmFr',
'file_2' => '/tmp/phpLs7DaJ',
],
'error' => [
'file_1' => 0,
'file_2' => 0,
],
'size' => [
'file_1' => 1024,
'file_2' => 98174,
],
],
];
*/
print_r(UploadedFileNormalizer::normalize($_FILES));
/*
[
'files' => [
'file_1' => `HttpSoft\UploadedFile\UploadedFile Object`,
'file_2' => `HttpSoft\UploadedFile\UploadedFile Object`,
],
];
*/
// Пример #4
/*
[
'files' => [
'name' => [
'data' => [
'nested' => [
'file_1' => 'file.txt',
'file_2' => 'image.png',
],
],
],
'type' => [
'data' => [
'nested' => [
'file_1' => 'text/plain',
'file_2' => 'image/png',
],
],
],
'tmp_name' => [
'data' => [
'nested' => [
'file_1' => '/tmp/phpN3FmFr',
'file_2' => '/tmp/phpLs7DaJ',
],
],
],
'error' => [
'data' => [
'nested' => [
'file_1' => UPLOAD_ERR_OK,
'file_2' => UPLOAD_ERR_OK,
],
],
],
'size' => [
'data' => [
'nested' => [
'file_1' => 1024,
'file_2' => 98174,
],
],
],
],
];
*/
print_r(UploadedFileNormalizer::normalize($_FILES));
/*
[
'files' => [
'data' => [
'nested' => [
'file_1' => `HttpSoft\UploadedFile\UploadedFile Object`,
'file_2' => `HttpSoft\UploadedFile\UploadedFile Object`,
],
],
],
];
*/ # Публичные методы
Данный класс имеет только один публичный статический метод.
# normalize
Преобразует каждое значение многомерного массива $files в экземпляр Psr\Http\Message\UploadedFileInterface.
public static function normalize(array $files = []): array; Метод использует рекурсию, поэтому массив $files может быть любого уровня вложенности.
Все имена ключей в массиве $files будут сохранены.
Структура массива должна быть такой же, как и у глобального массива
$_FILES.
Если указанно невалидное значение спецификации файла, будет брошено исключение \InvalidArgumentException.
Подробнее о структуре загружаемых файлов смотрите здесь.
