我在PHP中创建了一个方法,用于下载一系列pdf文件,然后将它们存档为zip文件并发送header('Content-type: application/zip')
。
临时文件没问题。这意味着您可以使用正确的文件解压缩存档。
前端部分。
我正在做POST
后端:
downloadSelectedInvoices(data) : Observable<any> {
let params = { data: JSON.stringify(data) }
return this.http.post(this.settings.backend.downloadSelectedInvoices, params, this.options)
.catch((error:any) => Observable.throw(error || 'Server error'));
}
我正在订阅这个observable(在组件中)并解析结果
this.downloadZip(result._body);
downloadZip(data){
let blob = new Blob([data], {
type: "application/zip"
});
FileSaver.saveAs(blob, "invoices.zip");
}
它下载了一个文件,但它已损坏。我可以打开它,里面只有一个符号。我做错了什么?
答案 0 :(得分:1)
我终于成功了。
当您向后端POST
时,您需要通过ResponseContentType
指定回复:
let options = new RequestOptions({responseType: ResponseContentType.Blob});