我有一个互联网方法来下载带有数据的'合同'文件。 file.txt里面有一些文字。必需参数是:方法获取。参数需要在标头中发送。像这样POST
最后我可以下载我的合同,但我有一个问题,我无法下载正确的文字,我的文字转换为照片。
我尝试使用Blob
,但我不明白如何将Blob转换为正确的文件文本或解决方案。
请按照我的代码:
我的服务代码:
public download(id: string): Observable<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', 'multipart/form-data');
return this.http.get(Api.getUrl(Api.URLS.download), {
headers: headers,
responseType: ResponseContentType.Blob,
search: params,
})
.map((res: Response) => {
console.log(res.blob)
console.log(res.text)
return res.blob();
})
}
我的代码:
download(id: string) {
this.service.contract_download(id).subscribe(res=> {
let data = new Blob([res], { type: 'text/plain;charset=utf-8' });
FileSaver.saveAs(data, 'text.docx');
console.log(blob)
console.log(data)
})
}
请问,如何获取数据文件?我尝试了一些例子,但结果没有任何改变。请问我任何想法/解决方案,如何解决这个问题?
响应:
答案 0 :(得分:0)
希望你能得到这个
download(id: string) {
this.service.contract_download(id).subscribe(response=> {
let headers = response.headers();
let blob = new Blob([response.data], {type: headers['content-type']});
FileSaver.saveAs(blob, headers['x-filename']);
console.log(blob)
console.log(data)
})
}