Скачать файлы из Laravel

Я хотел бы создать конечную точку в Laravel, которую я могу использовать в Linux для загрузки zip-архива.

Я создал:

public function download_templates()
{
    return response()->file(base_path() . '/sites/templates.zip');
}

Но когда я использую:

wget http://linktopage.com/api/download_templates

В результате я получаю HTML-код конечной точки.

У кого-то есть идея?

2 ответа

Решение

Просто используйте этот код, если вы используете 5.*

return response()->download(public_path('/sites/templates.zip'));

также я изменил base_path() в public_path(), поэтому вы должны поместить файл в Public, если нет, вы можете использовать base_path() вместо public_path() в коде выше.

Для инициализации файла ответ на загрузку должен содержать заголовки, указывающие, что это вложение, в противном случае браузер напечатает содержимое.

В соответствии с документами laravel, "file" метод используется, если вы хотите просто вывести содержимое файла без загрузки. Для скачивания есть метод "скачать", который заставляет скачивать.

Другие вопросы по тегам