Класс yii\web\MultipartFormDataParser
| Наследование | yii\web\MultipartFormDataParser » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\web\RequestParserInterface |
| Доступна с версии | 2.0.10 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/web/MultipartFormDataParser.php |
MultipartFormDataParser парсит содержимое, закодированное как 'multipart/form-data'.
Этот парсер предоставляет резервный вариант для обработки 'multipart/form-data' при запросах, отличных от POST, например: при запросе с методом 'PUT'.
Для включения этого парсера необходимо настроить yii\web\Request::$parsers следующим образом:
return [
'components' => [
'request' => [
'parsers' => [
'multipart/form-data' => 'yii\web\MultipartFormDataParser'
],
],
// ...
],
// ...
];
Метод parse() этого парсера автоматически заполняет $_FILES файлами, извлечёнными из тела запроса.
Примечание: поскольку это парсер запроса, он инициализирует значения
$_FILESв yii\web\Request::getBodyParams(). До вызова этого метода массив$_FILESостаётся пустым, даже если в теле запроса есть отправленные файлы. Убедитесь, что вы запросили параметры тела запроса перед любой попыткой получить загруженный файл, если используете этот парсер.
Пример использования:
use yii\web\UploadedFile;
$restRequestData = Yii::$app->request->getBodyParams();
$uploadedFile = UploadedFile::getInstancesByName('photo');
$model = new Item();
$model->populate($restRequestData);
copy($uploadedFile->tempName, '/path/to/file/storage/photo.jpg');
Примечание: хотя этот парсер полностью эмулирует обычную структуру
$_FILES, связанные временные файлы, доступные через ключtmp_name, не будут распознаны PHP как загруженные. Таким образом, функции, такие какis_uploaded_file()иmove_uploaded_file(), не сработают с ними. Это также означает, что yii\web\UploadedFile::saveAs() также не сработает.
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $uploadFileMaxCount | целое число | Максимальное количество загружаемых файлов. | yii\web\MultipartFormDataParser |
| $uploadFileMaxSize | целое число | Максимальный размер загружаемого файла в байтах. | yii\web\MultipartFormDataParser |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| getUploadFileMaxCount() | yii\web\MultipartFormDataParser | |
| getUploadFileMaxSize() | yii\web\MultipartFormDataParser | |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| parse() | Парсит тело HTTP-запроса. | yii\web\MultipartFormDataParser |
| setUploadFileMaxCount() | yii\web\MultipartFormDataParser | |
| setUploadFileMaxSize() | yii\web\MultipartFormDataParser |
Подробное описание свойств
$uploadFileMaxCount общедоступное свойство
Максимальное количество загружаемых файлов.
public integer getUploadFileMaxCount ( )
public void setUploadFileMaxCount ( $uploadFileMaxCount )
$uploadFileMaxSize общедоступное свойство
Максимальный размер загружаемого файла в байтах.
public integer getUploadFileMaxSize ( )
public void setUploadFileMaxSize ( $uploadFileMaxSize )
Подробное описание методов
getUploadFileMaxCount() public method
| public integer getUploadFileMaxCount ( ) | ||
|---|---|---|
| return | integer |
Максимальное количество загружаемых файлов. |
getUploadFileMaxSize() public method
| public integer getUploadFileMaxSize ( ) | ||
|---|---|---|
| return | integer |
Максимальный размер загружаемого файла в байтах. |
parse() public method
Парсит тело HTTP-запроса.
| public array parse ( $rawBody, $contentType ) | ||
|---|---|---|
| $rawBody | string |
Необработанное тело HTTP-запроса. |
| $contentType | string |
Тип содержимого, указанный для тела запроса. |
| return | array |
Параметры, распарсенные из тела запроса |
setUploadFileMaxCount() public method
| public void setUploadFileMaxCount ( $uploadFileMaxCount ) | ||
|---|---|---|
| $uploadFileMaxCount | integer |
Максимальное количество загружаемых файлов. |
setUploadFileMaxSize() public method
| public void setUploadFileMaxSize ( $uploadFileMaxSize ) | ||
|---|---|---|
| $uploadFileMaxSize | integer |
Максимальный размер загружаемого файла в байтах. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-web-multipartformdataparser.html