在我们的项目中,我们使用了blob构造函数和FileSaver进行下载 并查看文档(.pdf,.xls,.csv)。它可以在Windows上正常运行, 具有所有浏览器(Chrome,IE,Mozilla)的Android,但是我们遇到了一个问题 在Ipad Safari上。 我们要下载和查看文件。
The function that I have used in component.ts:
downloadAndViewPdfFile() {
this.service().download().subscribe((res) => {
const fileUrl = URL.createObjectURL(res);
window.open(fileUrl, '_blank');
});
}
它将打开一个新标签,并显示空白页(service.ts)
download(): Observable<any> {
return this.http.post<any>(this.getPath() + '/download', {responseType: 'blob'} as { responseType: any }).pipe(
tap(
(res) => {
return new Blob([res], {type: 'application/pdf'});
}
)
);
}
它在Windows上下载文件(不显示在新选项卡中),但在Ipad的Safari中显示文件(不显示在新选项卡中)
download(): Observable<any> {
return this.http.post<any>(this.getPath() + `/download`, {responseType: 'blob'} as { responseType: any }).pipe(
tap((res) => {
FileSaver.saveAs(res, 'export.pdf');
}
)
);
}
我想实现的事情是我想在所有系统上查看和下载文件。