Я хочу создать файл и загрузить его во время действия Laravel.
Я использую следующий код:
public function handle(ActionFields $fields, Collection $models)
{
Storage::disk('local')->put('file.txt', 'example');
$url = Storage::disk('local')->url('file.txt');
return Action::download($url, 'file.txt');
}
Это вызывает следующую ошибку:
Failed - no file
Что я здесь делаю неправильно?
Спасибо за ваше предложение, Ганшьям. Однако это не работает.






Не знаю, откуда появилось это сообщение об ошибке, но это может быть следующая проблема. Вызов return Action::download($url, 'file.txt') laravel nova даст указание браузеру загрузить файл по указанному URL-адресу. Как уже упоминалось, здесь этот URL-адрес (в зависимости от вашей конфигурации), вероятно, будет относительным URL-адресом /storage/file.txt. Таким образом, браузер попытается загрузить http(s)://domain/storage/file.txt, которого там может и не быть. Упомянутые выше документы содержат решение для этого.
Если вы даже не хотите создавать файл, который, возможно, потребует очистки и защиты, если данные конфиденциальны, вы также можете указать URL-адрес на маршрут и выполнить обработку в контроллере.
Это проблема пути. Это может помочь: return Action::download(storage_path('app/public/' . $filename));