从php后端使用Angular下载的损坏zip文件
我在PHP中创建了一个方法,用于下载一系列pdf文件,然后将它们归档到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
标题('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");
}