A free and open-source book on ZF3 for beginners


10.2. Доступ к выгруженным на сервер файлам в ZF3

В классе контроллера вы, как правило, не взаимодействуете с массивом $_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.


Top