Akshay malvankar Ответов: 2

Скачать файл .pdf с внешнего URL-адреса в angularjs


я попытался загрузить PDF файл с внешнего URL адреса в angularjs но мне не удалось загрузить следующий мой код

<!DOCTYPE html>
<html>

  <head>
    
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.js"> </script>    
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"> </script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.js"></script>
    
    
  </head>

  <body>
   
    <div ng-app="myApp" ng-controller="myCtrl">
 <button ng-click="downloadPdf()" >Download PDF</button>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
     $scope.downloadPdf = function (ServicePDF) {
            var fileName = "file_name.pdf";
            var a = document.createElement("a");
            document.body.appendChild(a);
            ServicePDF.downloadPdf().then(function (result) {
                var file = new Blob([result.data], {type: 'application/pdf'});
                var fileURL = window.URL.createObjectURL(file);
                a.href = fileURL;
                a.download = fileName;
                a.click();
            });
        };
        
  app.factory('ServicePDF', function ($http) {
        return {
            downloadPdf: function () {
            return $http.get('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', { responseType: 'arraybuffer' }).then(function (response) {
                return response;
            });
        }
    };
});   
   
});
</script>
  </body>

</html>


Что я уже пробовал:

я не смог найти никакого кода на .net

2 Ответов

Рейтинг:
1

Member 14687815

Для IE просто добавьте это:

if (window.navigator && window.navigator.msSaveOrOpenBlob) {
   window.navigator.msSaveOrOpenBlob(result, fileName);
}


Рейтинг:
0

Member 14687815

Приведенный выше код работал для меня в приложении angular 2+

Заметные правки, которые я сделал, чтобы работать:

изменено с

var file = new Blob([result.data], {type: 'application/pdf'});

к
var file = new Blob([result], {type: 'application/pdf'});


и
из этого
$http.get('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', { responseType: 'arraybuffer' }).then(function (response) {
                return response;
            });


к

$http.get('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', { responseType: 'arraybuffer' });