NG-ZORRO上传UPload组件接口调用
时间: 2023-07-29 11:07:17 浏览: 28
NG-ZORRO 的 Upload 组件提供了多种方式来调用接口,以下是其中两种常见的方式:
1. 通过 nzBeforeUpload 属性设置上传前的回调函数,在回调函数中通过 HttpClient 发送请求,示例如下:
```
<nz-upload
nzAction="https://www.mocky.io/v2/5cc8019d300000980a055e76"
[nzBeforeUpload]="beforeUpload">
<button nz-button>
<i nz-icon nzType="upload"></i><span>Upload</span>
</button>
</nz-upload>
beforeUpload = (file: File) => {
const formData = new FormData();
formData.append('file', file);
this.http.post('your-upload-api-url', formData).subscribe(res => {
console.log(res);
});
return false;
};
```
2. 通过 nzCustomRequest 属性设置自定义的上传方法,示例如下:
```
<nz-upload
nzAction="https://www.mocky.io/v2/5cc8019d300000980a055e76"
[nzCustomRequest]="customUpload">
<button nz-button>
<i nz-icon nzType="upload"></i><span>Upload</span>
</button>
</nz-upload>
customUpload = (item: UploadXHRArgs) => {
const formData = new FormData();
formData.append('file', item.file as any);
const req = new HttpRequest('POST', 'your-upload-api-url', formData, {
reportProgress: true
});
return this.http.request(req).subscribe((event: HttpEvent<any>) => {
if (event.type === HttpEventType.UploadProgress) {
if (event.total > 0) {
// 计算上传进度
const percent = (event.loaded / event.total) * 100;
item.onProgress(percent, event);
}
} else if (event instanceof HttpResponse) {
// 上传成功
item.onSuccess(event.body, event);
}
}, error => {
// 上传失败
item.onError(error.statusText, item.file);
});
};
```
需要注意的是,以上示例中的 `your-upload-api-url` 需要替换成实际的上传接口地址。同时,还需要根据实际情况对上传的请求参数进行调整。
相关推荐

















