查看blob excel文件到iframe

时间:2018-06-06 13:27:40

标签: excel iframe blob

我正在使用angularjs和typescript

我在我的服务器目录(节点js)上有excel文件我使用来自客户端的post请求下载它并将其转换为blob以便为客户端下载它。

现在我正在尝试使用iframe查看此文件,我尝试将blob网址附加到iframe src,但它无效。

我试过两种方法。

1- set blub url to view.officeapps.live.com src

<iframe id="myFrame" src="https://view.officeapps.live.com/op/embed.aspx?src=blob:http://localhost:3000/d39fc225-845c-40af-ba6c-a540ba278a11&amp;wdStartOn=1&amp;wdPrint=1&amp;wdEmbedCode=0" width="100%" height="100%" frameborder="0"></iframe>

我得到一个错误说:发生错误 很抱歉,但出于某种原因,我们无法为您打开。 了解更多

2-我尝试将网址直接设置为iframe:

<iframe id="myFrame" src="blob:http://localhost:3000/d39fc225-845c-40af-ba6c-a540ba278a11&amp;wdStartOn=1&amp;wdPrint=1&amp;wdEmbedCode=0" width="100%" height="100%" frameborder="0"></iframe>

我收到了这个错误: 它可能已被移动或删除。

这是我如何生成blob网址

 var ajax = new XMLHttpRequest();
  ajax.open("GET", url, true);
  ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  ajax.setRequestHeader('Authorization', self.token);
  ajax.responseType = 'blob';
  ajax.onload = function (e) {

     var contentTypeHeader = ajax.getResponseHeader("Content-Type");

     var fileUrl = window.URL.createObjectURL(new Blob([e.target['response']], {
      type: contentTypeHeader
    }));

first way image

second way image

我也试过ng-src。

请任何人帮忙

感谢

0 个答案:

没有答案