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

Метод file

Метод file класса AbstractController создаёт объект ответа BinaryFileResponse, который передаёт браузеру указанный файл. Первым параметром передаётся путь к файлу, вторым - имя файла для скачивания, третьим - нужно ли принудительно скачивать файл. Метод удобен для выдачи документов, изображений и других файлов из контроллера.

Синтаксис

file(string $file, string $fileName = null, bool $inline = false): BinaryFileResponse

Пример

Давайте отдадим файл 'article.pdf' из папки 'files':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_file')] public function index(): BinaryFileResponse { return $this->file('files/article.pdf'); } } ?>

Браузер отобразит файл 'files/article.pdf'.

Пример

Давайте зададим имя файла для скачивания:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_file')] public function index(): BinaryFileResponse { return $this->file('files/article.pdf', 'article.pdf'); } } ?>

При скачивании файл получит имя 'article.pdf'.

Пример

Давайте принудительно скачаем файл, передав третий параметр:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/download', name: 'article_download')] public function download(): BinaryFileResponse { return $this->file('files/article.pdf', 'article.pdf', true); } } ?>

Браузер скачает файл вместо его отображения.

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

  • класс AbstractController,
    который предоставляет базовые методы контроллера
  • метод stream,
    который отдаёт поток содержимого в браузер
  • метод render,
    который рендерит Twig-шаблон
  • метод redirect,
    который выполняет перенаправление
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить