首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存服务返回的PDF

保存服务返回的PDF
EN

Stack Overflow用户
提问于 2014-11-05 18:03:54
回答 2查看 4.3K关注 0票数 7

我在一个Angular JS应用程序中使用FileSaver.jsBlob.js来保存由REST服务返回的Blob.js(它返回一个表示文件的字节数组)。

代码语言:javascript
运行
复制
var headers = {headers: {"Authorization":"Bearer "+token, "Accept":"application/pdf"}};

  $http.get(URL, headers)
    .success(function (data) {
      var blob = new Blob([data], {type: 'application/pdf'});
      saveAs(blob, 'contract.pdf');
    });

文件以正确的类型保存,页数也正确,但它是完全空白的。使用编辑器打开它,结果发现它只包含服务器返回的数据的第一部分,就像被截断一样。

感谢大家的帮助!

EN

回答 2

Stack Overflow用户

发布于 2014-11-06 02:55:07

$http.get可能没有正确处理二进制数据。尝试使用$http({method: "GET", url: URL, responseType: "arraybuffer", ...}) (see angularjs)获取可以放入数据中的二进制对象。

您也可以使用responseType: "blob",这样您甚至不必创建var blob,但我认为responseType对浏览器的支持较少。

票数 8
EN

Stack Overflow用户

发布于 2018-02-19 18:51:14

向config参数添加一个响应类型对我来说很有效。尝试:

代码语言:javascript
运行
复制
var config = { responseType: 'blob', headers: {"Authorization":"Bearer "+token, 
"Accept":"application/pdf"}};

  $http.get(URL, config)
      .success(function (data) {
          var blob = new Blob([data], {type: 'application/pdf'});
          saveAs(blob, 'contract.pdf');
       });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26754295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档