Я использую этот код Angular
для загрузки файлов на сервер. Все работает нормально, файлы загружаются, но я не получаю отчеты о прогрессе.
import { HttpEvent, HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
private url = 'http://mydomain/uploadfile',
constructor(private http: HttpClient) {}
sendFile(file: File): Observable<any> {
const formData: FormData = new FormData();
formData.append('file', file, file.name);
const customHeaders = new HttpHeaders({
'Authorization': 'Bearer' + localStorage.getItem('token'),
'Accepted-Encoding': 'application/json'
});
const customOptions = {
headers: customHeaders,
reportProgress: true
};
return this.http.post(this.url, formData, customOptions)
.pipe(
map( (event: HttpEvent<any>) => {
// in here need to catch the event.UploadProgress event,
// but isn't happening
return event;
}),
tap(message => this.showProgress(message)),
last(),
catchError(this.handleError));
}
}
Что не так с этим кодом? Почему я не могу поймать событие event.UploadProgress
? Есть идеи?