Загрузка Laravel Excel и индикатор выполненияPhp

Кемеровские программисты php общаются здесь
Anonymous
Загрузка Laravel Excel и индикатор выполнения

Сообщение Anonymous »


У меня есть веб-сайт, на который я могу загрузить файл .xlsx, содержащий несколько строк информации для моей базы данных. Я прочитал документацию по laravel-excel, но похоже, что она работает только с индикатором выполнения, если вы используете консольный метод; а я нет.

Сейчас я использую простую HTML-форму загрузки, без ajax.

Но чтобы создать этот индикатор выполнения, мне нужно преобразовать его в ajax, и это не составит труда.

Но как мне создать индикатор выполнения при загрузке файла и проходе по каждой строке файла Excel?

Это контроллер и метод выполнения загрузки:

/** * Импортные компании * * @param Импортировать $запрос * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */ публичная функция postImport (запрос импорта $) { # Импортируем с использованием класса Import Excel::import(new CompaniesImport, $request->file('file')); return redirect(route('dashboard.companies.index.get'))->with('success', 'Импорт успешен!'); } А это файл импорта:

модель общедоступной функции (массив $row) { # Не создавайте и не проверяйте пустые строки # Плохое решение # TODO: лучшее решение если (!array_filter($row)) { вернуть ноль; } # Создать компанию $company = новая компания; $company->crn = $row['crn']; $company->name = $row['name']; $company->email = $row['email']; $company->phone = $row['phone']; $company->website = (!empty($row['website'])) ? Helper::addScheme($row['website']) : ''; $компания->сохранить(); # Всё пусто.. удалить адрес if (!empty($row['country']) || !empty($row['state']) || !empty($row['postal']) || !empty($row['address' ]) || !empty($row['zip'])) { # Создать адрес $адрес = новый адрес компании; $address->company_id = $company->id; $address->country = $row['country']; $address->state = $row['state']; $address->postal = $row['postal']; $address->адрес = $row['адрес']; $address->zip = $row['zip']; $адрес->сохранить(); # Прикреплять $company->addresses()->save($address); } вернуть $компанию; } Я знаю, что на данный момент это не так уж и много. Мне просто нужна помощь, чтобы понять, как создать этот индикатор выполнения, потому что я застрял.

Я думаю создать форму загрузки ajax, но дальше я не знаю.

Вернуться в «Php»