РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
474 of 1361 menu

Атрибут MapUploadedFile

Атрибут MapUploadedFile вешается на параметр метода контроллера и превращает файл, отправленный в запросе, в объект UploadedFile. Первым параметром передаётся имя поля формы, в которое был загружен файл. Если поле необязательное, можно указать nullable: true.

Синтаксис

#[MapUploadedFile(name, nullable: false)]

Пример

Давайте примем файл из поля image и сохраним его в каталог:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\MapUploadedFile; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload', name: 'upload_file')] public function upload( #[MapUploadedFile('image')] UploadedFile $image ): Response { $image->move($this->getParameter('kernel.project_dir') . '/public/uploads'); return new Response('file uploaded'); } } ?>

Результат выполнения кода:

"file uploaded"

Пример

Давайте сделаем файл необязательным и выведем его имя:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\MapUploadedFile; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload-optional', name: 'upload_optional')] public function upload( #[MapUploadedFile('image', nullable: true)] ?UploadedFile $image = null ): Response { if ($image === null) { return new Response('file not uploaded'); } return new Response($image->getClientOriginalName()); } } ?>

Результат выполнения кода при загрузке файла 'abcde.txt':

"abcde.txt"

Смотрите также

  • атрибут MapRequestPayload,
    который превращает тело запроса в объект
  • атрибут MapQueryParameter,
    который принимает параметр из строки запроса
  • атрибут MapQueryString,
    который превращает строку запроса в объект
  • атрибут MapEntity,
    который получает сущность из базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить