Как отправить скрытый файл для просмотра laravel (5.7)

Я создаю функцию импорта для импорта файла Excel. контроллер обработает его и сохранит данные в базе данных. После этого я хочу экспортировать ошибку в файл Excel и отправить ее для просмотра. Если пользователь нажимает кнопку "Загрузить", файл Excel, содержащий ошибку, будет загружен, в противном случае ничего не делать.

Итак, я хочу отправить скрытый файл в представление, чтобы избежать сохранения файла в базе данных.

как это сделать, помогите пожалуйста!

1 ответ

Решение

После обработки дескриптора в контроллере вы можете передать данные об ошибках в массив и отправить их в сессию следующим образом:

$request->session()->put('err_file', $arr_err_data);

и создать функцию для получения файла ошибки:

 public function getErrFile(){
        return Excel::create('Error', function ($excel){
            $excel->sheet('Error', function ($sheet) {
                $arr_err=Session::get('err_file');
                $sheet->fromArray($arr_err);
            });
        })->download('xlsx');
    }

Не забудьте создать маршрут для этой функции:

Route::get('/get_err_file', 'YourController@getErrFile');

Финал, вы можете создать ссылку для скачивания:

<a class="btn btn-link" href="{{url('get_err_file')}}" >Download</a>

Я надеюсь, что это может помочь вам!

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