$ http PDF download - неверный файл - PullRequest
       0

$ http PDF download - неверный файл

0 голосов
/ 23 октября 2018

Я пытаюсь загрузить PDF-файл с помощью службы $ http из AngularJS.

Когда я пытаюсь открыть файл, он недействителен (недопустимое цветовое пространство) и страница пуста.

Затем я проверяю:

  1. С консоли разработчика Firefox - Сеть: я вижу объект ответа от вызова ajax.
  2. Я устанавливаю точку останова в своем коде: я вижу объект ответавозвращается из $ http.

Они несколько отличаются: например,

  1. С консоли разработчика:

    "% PDF-1,4% ����.........

  2. От $ http:

    % PDF-1,4% от .........

То же самое произошло со всем документом.

Что я делаю не так?

PS код:

downloadService.downloadPDF(response.url).then(
  function(response) {
    if (response) {
      var aTag = document.getElementById('downloadFile');
      aTag.setAttribute('href', 'data:application/pdf;charset=utf-8,' + encodeURIComponent(response));
      aTag.setAttribute('download', $scope.data.filename);
      aTag.click();
    }
  });

Заголовки ответа:

Cache-Control:max-age=3600, must-revalidate
Content-Disposition:inline; filename=4550f2025f45cc2d14a403fbc1840160d4d052e4_598551722_300501.pdf
Content-Type:application/pdf
Date:Tue, 23 Oct 2018 11:17:44 GMT
Expires:0
Pragma:public
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=Y0kTkAV7GJLVRK1fKuZfffff; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/appbase; HttpOnly
Transfer-Encoding:chunked

1 Ответ

0 голосов
/ 23 октября 2018

encodeURIComponent не выполняет необходимую кодировку BASE64

https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs

Посмотрите здесь:

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Илиесть ссылка на файл на сервере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...