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

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

Я создал:

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

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

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

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

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

Почему бы не использовать laravel Storage :: download ($ filepath) ;?

Salman Zafar 12.10.2018 21:02

Возможный дубликат Скачивание файлов в laravel с помощью Response :: download

jww 13.10.2018 05:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
4 778
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

Ответ принят как подходящий

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

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

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

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