Angular 7在下载blob时获取损坏的文件
使用Angular 7,我通过发布url文件来调用api,并尝试通过使用fileSaver库中的“saveAs”函数来下载它。 文件正在下载,但无法打开,因为它已损坏 我的电话如下:Angular 7在下载blob时获取损坏的文件,angular,typescript,download,httpclient,filesaver.js,Angular,Typescript,Download,Httpclient,Filesaver.js,使用Angular 7,我通过发布url文件来调用api,并尝试通过使用fileSaver库中的“saveAs”函数来下载它。 文件正在下载,但无法打开,因为它已损坏 我的电话如下: var file_url = (response as any).headers['Location'] + 'files/Data.xlsx'; var filename = 'Data_' + this.getDateService.getDateFile() + '.xlsx'; const httpOpt
var file_url = (response as any).headers['Location'] + 'files/Data.xlsx';
var filename = 'Data_' + this.getDateService.getDateFile() + '.xlsx';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
}),
responseType: 'arraybuffer',
observe: 'response'
};
let downloadParameters = { filename: 'Data_' + this.getDateService.getDateFile() + '.xlsx', file: file_url }
this.downloadFileService.downloadFile(downloadParameters, httpOptions).subscribe(reponse => {
var blob = new Blob([(response as any).body], { type: 'application/vnd.openxmlformat-officedocument.spreadsheetml.sheet' });
saveAs(blob, filename);
})
我尝试的是:
- 按应用程序/八位字节流切换MIME application/vnd.openxmlformat-officedocument.spreadsheetml.sheet类型
- 将responseType arraybuffer按blob或blob切换为json
this.downloadFileService.downloadFile(downloadParameters, { responseType: 'blob' }).subscribe(blob=> {
saveAs(blob, filename);
})
哇,谢谢你,它真的起作用了。为什么它在没有httpHeaders的情况下工作?这里是http头。我没有存储在另一个变量中。如果你也投票给我,那就太好了:)我写的是“回复”而不是“回复”。通过纠正这一点,它正在发挥作用。