【发布时间】:2020-09-01 11:25:15
【问题描述】:
使用 Angular 7,我通过 get 方法调用 API,并尝试使用 fileSaver 库中的“saveAs”函数下载文件。
当我从响应标头获取文件名时,无法下载正确的文件并在文件内容中获取 [Object object],但无论何时使用虚拟名称,它都可以正常工作。
它是组件文件:
fileName:string="";
const MIME_TYPE ={
XLSX:'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
TXT:'text/*',
PDF:'application/pdf'
}
downloadFile(){
this.DownloadService.downloadFile(
(data: any) => {
this.fileName=data.headers.get('fileName');
const EXT = this.fileName.substr(this.fileName.lastIndexOf('.')+1);
saveAs(new Blob([data],{type:MIME_TYPE[EXT]}),this.fileName);
}
);
}
下载服务文件
public downloadFile(callback: (responseData: any) => void): void {
this.apiService.downloadFile.subscribe((data: any) => {
if (callback) {
callback(data);
}
});
}
api服务文件
downloadFile(param: any): Observable<any> {
return this.http.get(api/download, {responseType:'blob',observe: 'response' });
}
在文件内容中输出
[Object object]
【问题讨论】:
标签: javascript css json angular typescript