从php后端使用Angular下载的损坏zip文件

从php后端使用Angular下载的损坏zip文件,angular,http-headers,filesaver.js,Angular,Http Headers,Filesaver.js,我在PHP中创建了一个方法,用于下载一系列pdf文件,然后将它们归档到zip文件中,并发送标题('Content-type:application/zip') 临时文件正常。这意味着您可以使用正确的文件解压归档文件 前端部分。 我正在对后端进行发布: 下载选定语音(数据):可观察{ 设params={data:JSON.stringify(data)} 返回this.http.post(this.settings.backend.downloadSelectedInvoices、params、t

我在PHP中创建了一个方法,用于下载一系列pdf文件,然后将它们归档到zip文件中,并发送
标题('Content-type:application/zip')

临时文件正常。这意味着您可以使用正确的文件解压归档文件

前端部分。 我正在对后端进行
发布

下载选定语音(数据):可观察{
设params={data:JSON.stringify(data)}
返回this.http.post(this.settings.backend.downloadSelectedInvoices、params、this.options)
.catch((错误:any)=>可观察的.throw(错误| |“服务器错误”);
}

我订阅这个可观察的(在组件中)并解析结果

this.downloadZip(result.\u body)


它下载了一个文件,但已损坏。我可以打开它,里面只有一个符号。我做错了什么?

我终于成功了

当您向后端发布
POST
时,需要通过
ResponseContentType
指定响应:

let options=newrequestoptions({responseType:ResponseContentType.Blob})

downloadZip(data){
      let blob = new Blob([data], {
            type: "application/zip"
        });
      FileSaver.saveAs(blob, "invoices.zip");
}