我正在尝试做一件看起来很简单的事情:我正在尝试在iframe中显示window.URL.createObjectURL(*。pdf文件-Blob)。我正在尝试通过将iframe src属性绑定到window.URL.createObjectURL函数的输出来实现此目的。 看我的代码: 组件HTML:
<iframe [src]="safeResourceUrl" class="iframe"></iframe>
将属性绑定到组件中
safeResourceUrl : SafeResourceUrl;
this.safeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
URL看起来像这样(示例):
“斑点:http://localhost:4200/84999abe-5a02-48e0-bf61-f693eb5e0f6b”
这是它的内容(这些是保存为PDF的HTML标记,这没错,但其他任何内容也都可以):
<html>
<body>
<label style="color:red;"> test file (HTML) </label>
</body>
</html>
文件路径由从webApi get请求生成的Blob生成。 该请求配置有:
responseType: 'blob'
并且blob类型为
type: 'application/octet-stream'
我在这里想念什么? 正在使用正确的内容下载文件,但是iframe内容(在开发人员工具中包含空HTML标记):
<html><head></head><body></body></html>
请支持
答案 0 :(得分:0)
经过几次测试后找到答案: 我将Blob类型设置为“ application / pdf”,而不是用于下载的“ application / octet-stream”。
const blob = new Blob([res.body], { type: obj.action == FileAction.save ? 'application/octet-stream' : 'application/pdf' }); // preview in a PDF format