Angular实现下载文件到本地
第一步:获取下载地址
//获取下载地址
download() {
let param = {
"**" : "**", //参数 json形式
"**" : "**",
} ;
this.download(param).subscribe((res: any) => {
if (res.success) {
let target = res.message; //下载地址
this.downloadFile(target); //调用下载方法
}
})
}
第二步: 调用下载方法
//下载方法
downloadFile(target) {
return this.http
.get(`${#URL}?recordid=${target}`, { //#URL表示下载的URL地址
responseType: 'blob',
observe: 'response'
})
.subscribe(data => {
const link = document.createElement('a');
const blob = new Blob([data.body], { type: 'application/zip' });
link.setAttribute('href', window.URL.createObjectURL(blob));
link.setAttribute('download', data.headers.get('Content-disposition').split('filename=')[1]);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
备注: download方法
download(param) {
return this.http.post(`${#URL}`, null, { //#URL 表示URL地址
params: param,
});
}