Yii2. Как отдать файл на скачивание?

Главная  >>  Backend  >>  Yii2. Как отдать файл на скачивание?

Задача программной отдачи файла может встретиться довольно часто, но не многие знают, что в Yii2 есть встроенный методы, помогающие решить проблему отдачи файла в браузер на скачивание. В этой короткой заметке — пример решения задачи. Поехали!

В принципе, все средства описаны в документации. Я лишь приведу несколько примеров и пояснений.

Наиболее полезными и часто используемыми являются два метода:
sendFile
sendContentAsFile

Первый из них отдает в браузер файл, физически существующий на сервере.
Второй — позволяет отдать в браузер некое сгенерированное содержимое (первый параметр) под условным названием (второй параметр). К примеру некий отчет за определенный период — согласитесь, глупо его хранить на сервере, если у Вас тысячи клиентов. Генерируем и отдаём сразу на скачивание.

Пример скачивания выглядит так:

Также стоит обратить внимание на функцию xSendFile, которая также отдаёт файл в браузер — но использует при этом X-заголовки. Интерфейс вызова схож с описанными выше методами и описан в документации.

Вот так мы можем просто отдавать файлы в браузер на скачивание при помощи Yii2. Удачи.