Метод download
Метод download класса Response используется для формирования ответа, который заставляет браузер загрузить указанный файл. Первым параметром передаётся путь к файлу на сервере, вторым - имя файла, под которым он будет сохранён у пользователя, третьим - массив заголовков ответа.
Синтаксис
<?php
response()->download($path, $name, $headers);
?>
Пример
Давайте отправим пользователю файл 'document.pdf' для скачивания:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class FileController extends Controller
{
public function downloadFile()
{
$path = storage_path('app/public/document.pdf');
return response()->download($path);
}
}
?>
Пример
Укажем пользовательское имя для скачиваемого файла:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class FileController extends Controller
{
public function downloadFile()
{
$path = storage_path('app/public/report.xlsx');
return response()->download($path, 'my_report.xlsx');
}
}
?>
Пример
Добавим дополнительные заголовки к ответу:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class FileController extends Controller
{
public function downloadFile()
{
$path = storage_path('app/public/image.jpg');
$headers = [
'Content-Type' => 'image/jpeg',
'Cache-Control' => 'public, must-revalidate'
];
return response()->download($path, 'photo.jpg', $headers);
}
}
?>
Пример
Используем метод в маршруте для скачивания файла:
<?php
use AppHttpControllersFileController;
Route::get('/download', [FileController::class, 'downloadFile']);
?>