Мне нужно показать / скачать файл .pdf в моем проекте Angular 7, но у меня возникли некоторые проблемы с window.URL.createObjectURL.
Вот что я сделал:
this.userService.getFile(report.id).subscribe(
res => {
console.log(res)
const filename = res.headers.get('content-disposition').split(';')[1].split('=')[1].replace(/\"/g, '')
const blob = new Blob([res.body], { type: res.body.type })
const url = window.URL.createObjectURL(blob)
const a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement
a.href = url
a.download = filename
window.document.body.appendChild(a)
a.click()
window.document.body.removeChild(a)
URL.revokeObjectURL(url)
},
err => {
console.log(err)
}
где getFile () - простой http-запрос
getFile(fileId: string): Observable<any> {
return this.http.get(environment.API_URL + '/file/' + fileId, {observe: 'response', responseType: 'blob'})
}
Моя среда IDE также запускает «элемент Instance недоступен» в окне .URL. createObjectURL ()
Кажется, что файл извлекается с сервера, и с консоли я вижу отладочную информацию «Перейти к blob: //», но приглашение на загрузку не появляется.
Я использовал тот же подход в другом проекте Angular (но версии 6), и он работает хорошо, я не могу понять, почему сейчас больше не работает.
Любое предложение?
Спасибо!