xml - 如何在前端使用 Angular5 管理 responseType = 'blob'
问题描述
我想下载一个doc.pdf
有文本的'My first file download'
。当我尝试下载到 zip 文件时,我的文件有一些 files.xml 就像这张照片
你能建议我如何将此文件转换为 pdf 格式吗?
请按照我的代码:
组件.ts
export(id: string) {
this.ss.download(id)
.subscribe(data => { console.log(`excel data: ${data}`); FileSaver.saveAs(data, 'doc.zip') },
error => console.log('Error downloading the file.'),
() => console.log('Completed file download.'));
}
服务.ts:
public download(id: string): Observable<any> {
//let oReq = new XMLHttpRequest();
// let options = new RequestOptions({ responseType: ResponseContentType.Blob });
let params = new URLSearchParams();
let headers = new Headers();
headers.append('x-access-token', this.auth.getCurrentUser().token);
headers.append('sale_id', id);
headers.append('Content-Type', 'application/json;charset=UTF-8');
headers.append('responseType':'arraybuffer');
return this.http.get(Api.getUrl(Api.URLS.download), {
headers: headers,
responseType: ResponseContentType.Blob,
}).map(res => res.blob())
}
必需的参数是:方法get。参数需要在标头中发送。
解决方案
我不知道这是否会对您有所帮助(我对您的工具不太感兴趣)
您正在下载的文件是一种DOCX
格式。这是现代的 MS-Word 格式。这种格式——即使它有不同的扩展名——是一个简单的 ZIP 文件。
任何压缩文件的PK
开头都是一个神奇的代码,告诉消费者这是什么类型的文件。
“PK”回到“PKWARE”并指向Phil Katz,他是发明zip格式的人之一。
压缩文件 - 与任何其他文件一样 - 只是一堆字节。消费者必须知道,如何阅读和解释这一点。
您应该尝试将字节流完全写入文件,将其命名为“However.docx”并尝试使用 MS-Word 打开它。
如果这没有帮助,字节流可能会被压缩,或者以某种方式本身被编码......至少你给我们展示的图片看起来不像这样。
不要尝试将字符复制并粘贴到任何类型的编辑器中。这样的文件有几个不可见的字符,它们会丢失......获取字节并存储它们就像你得到它们一样(你会做同样的存储JPEG)。
推荐阅读
- windows - 以特权非管理员用户身份启动服务,出现拒绝访问错误
- python - 如果在python中将一列作为无传递,如何对数据框中的列求和
- c# - ASP.NET CORE 2.1 Identity 已注册
- apache-spark - 列表上的 Spark 数据帧操作返回 [Ljava.lang.Object;@]
- ios - 如何在swift 3中制作单选按钮
- c++ -
:0:8: 错误:一个声明中有多种类型 - python - 以字符串形式给出的 Python 类型提示?
- c++ - concurrent_hash_map 导致编译错误
- python - 使用 python2.7 和 selenium 访问 datepicker
- jquery - jQuery - 查找元素并显示或隐藏