如何在上传(表单数据)请求结束后获取返回的数据(后端)?
How to get the data returned(back-end) after an Upload (form-data) request ends?
我有一个监控进度的上传方法。
上传工作正常,但最后,我的后端向我发送了一个上传文件的对象(注册)(id 等)
不知道怎么拍。要使用什么管道或要更改成什么 return 类型。
有什么帮助吗?
我的上传方式内容
[...]
const formData = new FormData();
formData.append('orderDate', orderDate);
formData.append('file', fileToUpload.data, fileToUpload.name);
const options: any = {
observe: 'events',
reportProgress: true,
};
fileToUpload.isUploading = true;
return this.http.post<HttpEvent<Object>>(url, formData, options)
.pipe(
map((ev: HttpEvent<Object>) => {
if (ev.type === HttpEventType.Response) {
fileToUpload.isUploading = false;
} else if (ev.type === HttpEventType.UploadProgress) {
const percentDone = Math.round((ev.loaded * 100) / ev.total);
fileToUpload.uploadProgress = percentDone;
fileToUpload.isUploading = true;
}
})
);
您必须创建 Register
接口并将其转换为 if 条件。如果可能,请在 StackBlitz
中分享示例
return this.http.post<HttpEvent<Object>>(url, formData, options)
.pipe(
map((ev: HttpEvent<Object>) => {
if (ev.type === HttpEventType.Response) {
fileToUpload.isUploading = false;
console.log(ev);
} else if (ev.type === HttpEventType.UploadProgress) {
const percentDone = Math.round((ev.loaded * 100) / ev.total);
fileToUpload.uploadProgress = percentDone;
fileToUpload.isUploading = true;
}
})
);
我有一个监控进度的上传方法。 上传工作正常,但最后,我的后端向我发送了一个上传文件的对象(注册)(id 等)
不知道怎么拍。要使用什么管道或要更改成什么 return 类型。
有什么帮助吗?
我的上传方式内容
[...]
const formData = new FormData();
formData.append('orderDate', orderDate);
formData.append('file', fileToUpload.data, fileToUpload.name);
const options: any = {
observe: 'events',
reportProgress: true,
};
fileToUpload.isUploading = true;
return this.http.post<HttpEvent<Object>>(url, formData, options)
.pipe(
map((ev: HttpEvent<Object>) => {
if (ev.type === HttpEventType.Response) {
fileToUpload.isUploading = false;
} else if (ev.type === HttpEventType.UploadProgress) {
const percentDone = Math.round((ev.loaded * 100) / ev.total);
fileToUpload.uploadProgress = percentDone;
fileToUpload.isUploading = true;
}
})
);
您必须创建 Register
接口并将其转换为 if 条件。如果可能,请在 StackBlitz
return this.http.post<HttpEvent<Object>>(url, formData, options)
.pipe(
map((ev: HttpEvent<Object>) => {
if (ev.type === HttpEventType.Response) {
fileToUpload.isUploading = false;
console.log(ev);
} else if (ev.type === HttpEventType.UploadProgress) {
const percentDone = Math.round((ev.loaded * 100) / ev.total);
fileToUpload.uploadProgress = percentDone;
fileToUpload.isUploading = true;
}
})
);