Laravel nova action загрузить файл вызывает: Failed - нет файла - PullRequest
0 голосов
/ 01 мая 2019

Я хочу создать файл и загрузить его во время действия 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

Что я здесь не так делаю?

1 Ответ

1 голос
/ 19 июня 2019

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

Если вы даже не хотите создавать файл, который может нуждаться в очистке и защите, если данные чувствительны, вы можете также указать URL-адрес на маршрут и выполнить обработку в контроллере.

...