iframe src中的Blob对象

时间:2019-03-17 12:49:38

标签: angular asp.net-web-api iframe httpresponse

我正在尝试做一件看起来很简单的事情:我正在尝试在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>

请支持

1 个答案:

答案 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