Я прочитал несколько сообщений StackOverflow, связанных с этим, но еще не заставил его работать.
Мой бэкэнд - приложение .NET Core, и он возвращает byte[]
для меня, чтобы загрузить PDF,Это возвращаемые данные, во-первых, просто вызвав API-интерфейс, а затем, установив тип возвращаемого значения blob
:
Два вызованапример:
this.http.get('/my/pdf/url').subscribe(data => console.log(data));
и
this.http.get('/my/pdf/url', { responseType: 'blob' }).subscribe(data => console.log(data));
В обоих случаях я беру возвращаемые данные и отправляю их в службу, которая использует пакет FileSaver для сохранения файла. В первом примере я попытался сохранить файл следующим образом:
saveFile(buffer: any, fileName: string, fileType: string) {
const data: Blob = new Blob([buffer], { type: fileType });
FileSaver.saveAs(data, fileName);
}
Он берет данные из API, преобразует их в большой двоичный объект, а затем пытается сохранить его. Для fileType
я пробовал 'application/pdf'
и 'application/octet-stream'
, ни один не работает. Второй пример, который я пытался сохранить следующим образом:
savePdf(blob: Blob, fileName: string) {
FileSaver.saveAs(<any>blob, fileName);
}
Однако ни одна из этих функций не работает. Файл загружен, но когда вы открываете его, появляется ошибка, и ничего не отображается.
Я не уверен, что еще можно попробовать, но, надеюсь, кто-то может указать мне правильное направление.