В классе контроллера вы, как правило, не взаимодействуете с массивом
$_FILES
напрямую, вместо этого используется класс Request
или
плагин контроллера Params
, как показано в примере ниже:
<?php
//...
class IndexController extends AbstractActionController
{
// Пример действия контроллера, предназначенного для обработки выгруженный на сервер файлов.
public function uploadAction()
{
// Получаем массив $_FILES целиком.
$files = $this->getRequest()->getFiles();
// То же самое, но с помощью плагина контроллера Params.
$files = $this->params()->fromFiles();
// Получаем один элемент массива $_FILES.
$files = $this->params()->fromFiles('myfile');
}
}
В строке 9 приведенного выше кода мы вызываем метод getRequest()
класса контроллера для доступа
к объекту Request
, а также метод getFiles()
объекта запроса для извлечения информации сразу о
всех выгруженных на сервер файлах.
В строке 12 мы делаем то же самое с помощью плагина контроллера Params
. Мы используем его метод
fromFiles()
, чтобы получить информацию о всех выгруженных файлах.
При необходимости, можно извлечь информацию только об определенном файле. В строке 15 мы используем
тот же метод fromFiles()
и передаем ему имя поля файла для извлечения. Таким образом можно извлечь
одну запись файла из суперглобального массива $_FILES
.