Задать вопрос
Igor-Maf
@Igor-Maf
Senior Front End developer

AngularJS: Как скачать PDF-файл по ссылке с атрибутом download?

Доброго времени суток.
Столкнулся с проблемой, подскажите решение.

На бэке - Laravel 5.x, на фронте Angular 1.5.x (для роутинга на фронте использую ui-router).

Есть PDF-файлы, которые хранятся на сервере в папке stock_files. Нужно сделать ссылку, по нажатию на неё файл должен скачиваться. На windows, предоставленный ниже вариант работает, на MacOS происходит редирект по:
$urlRouterProvider.otherwise("/admin/redirecthome");

Ссылку формирую так:
<a
  ng-if="f.id"
  ng-href="stock_files/{{vm.item.id}}/{{f.name}}"
  download
  target="_blank"
  ng-bind="f.original_name">
</a>
, где vm.item.id - это id стока, f.name - имя файла.

На MacOS (Safari) ошибки не сыпятся, открывается новая вкладка и происходит редирект на state 'admin.redirecthome', файл не скачивается. На windows открывается новая вкладка в браузере, файл скачивается, вкладка закрывается.

Использовал
target="_blank"
на всякий случай, с надеждой, что если download не сработает, то файл откроется в браузере в новой вкладке. Пробовал убрать атрибут download и ставил target="_self", на MacOS также не работает.

В конфиге фронта установлено:
$locationProvider.html5Mode(true);
и
<base href="/">,
поэтому ссылки работают с учетом доменного имени.

Кто встречался с проблемой, подскажите решение, пожалуйста.
  • Вопрос задан
  • 870 просмотров
Подписаться 2 Оценить 7 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы