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

Метод file

Метод file класса Response применяется для отправки файлов клиенту. Первым параметром передаётся путь к файлу на сервере, вторым - имя файла, которое будет отображаться у пользователя. Третьим параметром можно передать массив заголовков. Если второй параметр не указан, используется имя файла из пути.

Синтаксис

<?php use Illuminate\Support\Facades\Response; Response::file($path, $name, $headers); ?>

Пример

Давайте отправим файл с простым текстом:

<?php use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Response; Route::get('/file', function () { $path = storage_path('app/files/example.txt'); return Response::file($path); }); ?>

После перехода по маршруту /file браузер предложит скачать файл или отобразит его содержимое в зависимости от типа.

Пример

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

<?php use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Response; Route::get('/file', function () { $path = storage_path('app/files/example.txt'); return Response::file($path, 'document.txt'); }); ?>

При скачивании файл будет сохранён как 'document.txt'.

Пример

Давайте отправим файл с дополнительными заголовками:

<?php use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Response; Route::get('/file', function () { $path = storage_path('app/files/image.jpg'); $headers = [ 'Content-Type' => 'image/jpeg', 'Cache-Control' => 'public, max-age=3600' ]; return Response::file($path, 'photo.jpg', $headers); }); ?>

Заголовки позволяют управлять кэшированием и типом контента для корректного отображения в браузере.

Пример

Давайте используем метод file в контроллере:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Response; class FileController extends Controller { public function download() { $path = storage_path('app/files/report.pdf'); return Response::file($path, 'report.pdf'); } } ?>
<?php use App\Http\Controllers\FileController; Route::get('/download', [FileController::class, 'download']); ?>

При переходе по маршруту /download будет скачан PDF-файл.

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

  • метод download,
    который также отправляет файлы, но добавляет заголовки для принудительной загрузки
  • метод header,
    который добавляет заголовки к ответу
  • метод json,
    который возвращает ответ в формате JSON
  • метод stream,
    который отправляет потоковые данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить