Скачать файлы из 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" метод используется, если вы хотите просто вывести содержимое файла без загрузки. Для скачивания есть метод "скачать", который заставляет скачивать.