Я хотел бы создать конечную точку в Laravel, которую я могу использовать в Linux для загрузки zip-архива.
Я создал:
public function download_templates()
{
return response()->file(base_path() . '/sites/templates.zip');
}
Но когда я использую:
wget http://linktopage.com/api/download_templates
В результате получаю HTML-код конечной точки.
У кого-то есть идея?
Возможный дубликат Скачивание файлов в laravel с помощью Response :: download






Чтобы инициализировать загрузку файла, ответ должен содержать заголовки, указывающие, что это вложение, в противном случае браузер будет печатать контент.
Согласно laravel документы "файловый" метод используется в случае, если вы хотите просто вывести содержимое файла без загрузки. Для скачивания есть метод "download", который заставляет скачивать.
просто используйте этот код, если вы используете 5. *
return response()->download(public_path('/sites/templates.zip'));
Кроме того, я изменил base_path() на public_path(), поэтому вы должны разместить файл в открытом доступе, в противном случае вы можете использовать base_path() вместо public_path() в приведенном выше коде.
Почему бы не использовать laravel Storage :: download ($ filepath) ;?