добрый день уважаемые знатоки. подскажите как сделать laravel vue asios индикатор выполнения скрипта.
есть контроллер back
public function rasFileRecord($dir, $file, Request $request)
{
$all=count($zap);
foreach ($zap as $z) {
$rasZap = $this->rasZap->createOrUpdateZap($z, $rasFileDb->id);
$this->rasSl->createOrUpdateSL($z, $rasZap->id);
$n++;
Session::pull('progress', $n);
session('progress', $n);
$_SESSION['progress']=$n;
response()->json(['message'=>'test']);
}
}
есть процедура vue
const CancelToken = axios.CancelToken;
this.source = CancelToken.source();
this.loading = true;
let dir = this.$route.params.dir;
axios
.get(`/api/v1/ras-file-record/${dir}/${nameFile}`, {
cancelToken: this.source.token,
onDownloadProgress: progressEvent => {
let contentLength = event.srcElement.getResponseHeader(
"content-length"
);
let percentCompleted = Math.round(
(progressEvent.loaded * 100) / progressEvent.total
);
/*let data = this.$session.get("progress");
console.log(data);*/
//console.log(progressEvent);
//console.log(percentCompleted);
}
})
.then(resp => {
this.loading = false;
console.log(resp);
})
.catch(err => {
console.log(err);
});
главный вопрос как отдать из laravel промежуточные результаты обработки и как забрать их в axios-запросе.
пробывал стандартными сесиями забирать с интервалом(js их не видит). заголовками тоже не получается так как axios их получает с ответом. Может есть какой нибудь другой вариант. Спасибо.
к сожалению процесс обработки не зависит от загрузки файла и не передает на front не dowload не upload. как быть в таком случае?