Открыть или сохранить файл после загрузки в угловой - PullRequest
0 голосов
/ 29 июня 2018

У меня есть случай, когда файл можно открыть в новой вкладке, он должен быть открыт в новой вкладке. Если нет, он сохраняется с заданным именем (имя должно быть установлено динамически).

У меня есть следующий фрагмент:

         if (windowService.navigator.msSaveOrOpenBlob) {
             windowService.navigator.msSaveOrOpenBlob(file, fileName);
         } else {
             const link: HTMLAnchorElement = document.createElement("a") as HTMLAnchorElement;
             link.href = windowService.URL.createObjectURL(file);
             if (fileName) {
                 link.download = fileName;
             }
             link.target = "_blank";
             document.body.appendChild(link);
             link.click();
             document.body.removeChild(link);
         }

Когда я использую это, все файлы загружаются (включая pdf / text, который в противном случае при попытке с window.open () открывается в новой вкладке). Мое требование: : если файлы можно открыть в новой вкладке, они должны быть открыты в новой вкладке (например, pdf / text и т. Д. (Которые открываются в новой при попытке с помощью window.open ()). ). Я понимаю, что могу использовать window.open () , но это не поддерживает установку желаемого имени в файл.

Есть ли способ достичь этого? Также, как я могу определить, можно ли открыть файл в новой вкладке перед его загрузкой? Если я знаю, что файл не может быть открыт, в этом случае я загружаю его и открываю в новой вкладке.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Для принудительной загрузки необходимо установить заголовок Content-Disposition в заголовке ответа

Открытие файла или загрузка зависит. например открыть PDF. Если в вашем браузере поддерживается средство просмотра PDF, оно откроется, иначе загрузится автоматически

0 голосов
/ 29 июня 2018

Чтобы открыть файл после загрузки или сохранения.

/**
 * Method is use to download file.
 * @param data - Array Buffer data
 * @param type - type of the document.
 */
downLoadFile(data: any, type: string) {
    var blob = new Blob([data], { type: type.toString() });
    var url = window.URL.createObjectURL(blob);
    window.open(url);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...