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

Метод setContentDisposition

Метод setContentDisposition класса BinaryFileResponse управляет заголовком Content-Disposition, который сообщает браузеру, как обрабатывать отправляемый файл. Первым параметром передаётся тип отображения: attachment для скачивания или inline для показа прямо в окне браузера. Вторым необязательным параметром передаётся имя файла, которое увидит пользователь. Метод возвращает текущий объект ответа, что позволяет строить цепочки вызовов.

Синтаксис

$response->setContentDisposition(string $disposition, ?string $filename = null)

Пример

Давайте отдадим файл на скачивание с именем 'article.txt':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Routing\Attribute\Route; class FileController extends AbstractController { #[Route('/download', name: 'file_download')] public function download(): BinaryFileResponse { $file = $this->getParameter('kernel.project_dir') . '/public/file.txt'; $res = new BinaryFileResponse($file); $res->setContentDisposition('attachment', 'article.txt'); return $res; } } ?>

В результате браузер скачает файл под именем article.txt.

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\Routing\Attribute\Route; class FileController extends AbstractController { #[Route('/view', name: 'file_view')] public function view(): BinaryFileResponse { $file = $this->getParameter('kernel.project_dir') . '/public/file.pdf'; $res = new BinaryFileResponse($file); $res->setContentDisposition('inline', 'document.pdf'); return $res; } } ?>

В результате браузер покажет PDF-файл прямо на странице.

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

  • класс BinaryFileResponse,
    который отдаёт файл в виде ответа
  • метод setFile,
    который задаёт путь к отправляемому файлу
  • метод deleteFileAfterSend,
    который удаляет файл после отправки
  • класс Response,
    который представляет базовый HTTP-ответ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить