【问题标题】:the download of an xml.gzip file does not workxml.gzip 文件的下载不起作用
【发布时间】:2020-12-28 17:12:19
【问题描述】:

我将下载一个带有响应的 xml.gzip 文件:

Cache-Control: no-cache, no-store, max-age=0, must-revalidate

连接:保持活动

Content-Disposition:附件;文件名=ERKENNUNGSMODELL_CI.9.221_part_1_of_1.xml

内容编码:gzip

内容长度:1323

内容-MD5:fIHw5FJ1KWkBHsZ+jbkuwg==

内容类型:应用程序/xml

日期:格林威治标准时间 2020 年 9 月 10 日星期四 07:56:46

过期:0

保持活动状态:超时=60

编译指示:无缓存

严格的传输安全性:max-age=31536000;包含子域

X-Content-Type-Options: nosniff

X-XSS-保护:1;模式=块

我的代码是:

download(url) {
let downloadHeaders = new HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8',
  'authorization': "Bearer " + localStorage.getItem('token') });
downloadHeaders.append('Access-Control-Allow-Origin', '*');
this.httpClient.get('/rest/ui/download/product-part/' + url, { headers: downloadHeaders }).subscribe(response => {
    console.log(response);
    this.downLoadFile(response, "application/xml");
  }
);

}

  downLoadFile(data: any, type: string) {
let blob = new Blob([data], { type: type});
let url = window.URL.createObjectURL(blob);
let pwa = window.open(url);
if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') {
  alert( 'Please disable your Pop-up blocker and try again.');
}

}

有 new HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8', 'authorization': "Bearer" + localStorage.getItem('token') });

在 console.log 中文件正确显示。但下载不起作用:解析“myUrl”期间的Http失败

【问题讨论】:

  • 当你调用 .get 时尝试添加responseType: 'blob' 这样... {headers: {...}, responseType: 'blob'} ...
  • 谢谢。 blob 打开一个新窗口。如何将内容下载为文件?

标签: javascript angular download


【解决方案1】:

如前所述,您必须将 reponseType: 'blob' 添加到您的获取选项中。

这是我在我的一个应用程序中处理它的方式,其中const data 是从downloadAttachment 返回的 blob。这可能不是最干净的方法,但它确实有效。

  async downloadAttachment(id: number, filename: string) {
    const data = await this.front.downloadAttachment(id);
    const downloadURL = window.URL.createObjectURL(data);
    const link = document.createElement('a');
    link.target = '_blank';
    link.href = downloadURL;
    link.download = filename;
    link.click();
  }

检查是否有帮助。如果您有任何问题,请在此处提问。

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2012-11-26
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多