下载PDF文件不适用于角度和JavaScript

时间:2017-11-07 06:25:30

标签: javascript angularjs blob

enter image description here

我使用下面的代码下载PDF文件。文件已下载,但不包含任何数据。

     var blob = new Blob([response], { type: "text/plain"});
     var url = window.URL.createObjectURL(blob); 
     var link = document.createElement('a');
     link.href = url;
     link.download = e.coAttachmentName; 
     link.click();

2 个答案:

答案 0 :(得分:2)

使用 FileSaver.js ,从此处获取https://github.com/eligrey/FileSaver.js/

var filename = new Date();
var blob = new Blob([response], {type: "application/pdf;charset=utf-8"});
saveAs(blob, filename +".pdf");

saveAs 会为您下载pdf文件。

答案 1 :(得分:1)

首先,您的请求响应类型必须为arraybuffer

function openFile(response,fileName,saveFile){
  var fileURL;
  var contentType = response.headers('Content-Type');
  var blob = new $window.Blob([response.data], { type: contentType });
  if(saveFile){
      saveAs(blob, fileName);
  }else{
    if($window.navigator.msSaveOrOpenBlob){
        $window.navigator.msSaveOrOpenBlob(blob , fileName);
    }else{
        fileURL = URL.createObjectURL(blob);
        $window.open(fileURL, '_blank');
    }
  }
}

$window是AngularJS服务 - 对浏览器window对象的引用。

$window.navigator.msSaveOrOpenBlob - 它是一种特定于IE浏览器的方法,支持创建和下载不受IE支持的Blob URL的文件。

saveAs - https://github.com/eligrey/FileSaver.js/