问题描述
我正在服务器 (SpringBoot) 中读取 pdf 并将其作为要在新选项卡中打开的字节数组返回。在客户端(Angular),我将它作为一个 blob 使用。然后我尝试在新标签页中打开 pdf
service.ts 文件
getPdf(httpHeaders: HttpHeaders): Observable<any> {
return this.http.get(this.getServerUrl() + 'dummypdf',{
observe: 'response',responseType: 'blob',headers: httpHeaders
});
}
Component.ts 文件
openPdf(){
this.service.getPdf(generateRequestId()).subscribe(file => {
let blobData = new Blob([file.body],{
type: 'application/pdf'
});
let fileData = new File([file.body],"name",{type: 'application/pdf'});
let fileURL = window.URL.createObjectURL(fileData);
window.open(fileURL,"_blank")
})
}
我可以在新标签页中打开 pdf。一切顺利。但是 blob URL 是这样显示的
blob:http://localhost:4200/ba35a67c-571e-4450-bda4-b438dc8d6d8e
我确实明白这是因为它正在读取的内存位置而且它不可定制。
我的问题是,有没有其他方法可以解决这个问题。就像可能不将其作为 blob 使用或不将其作为字节数组从服务器发送?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)