我正在使用embed标签显示从服务器下载的pdf文件。通过嵌入,我可以下载/打印/旋转其内容。问题是通过嵌入标签中的下载功能使用 FILENAME 下载了我的pdf文件。
HTML代码:
<embed name="plugin" [src]="selectedDocumentSource | safe" type="application/pdf">
selectedDocumentSource 是直接从服务器指向文件的链接。为此,我在响应头:
Content-Disposition: inline; filename="MyDocumentName.pdf"
此方法的问题是:此GET由浏览器完成。没有任何扩展名,并且如果可能的话,使用打字稿,我如何在其中添加授权标头?
我使用的是angular,但此浏览器请求(仅此一个)没有被拦截(可能是在angular之外运行的)。
我下载文件而不是浏览器。
showDocument(): void {
const reader = new FileReader();
reader.onload = () => {
this.selectedDocumentSource = reader.result;
};
this.service.getDocument( docId ).subscribe( {
next: (res: Blob) => reader.readAsDataURL( res )
} );
}
selectedDocumentSource 是一个DataURL。 specification中未记录文件名属性(尽管我尝试附加文件名,文件名,名称属性)。
当用户单击下载图标(由浏览器提供)时,浏览器会提示将“ download.pdf”文件保存在何处,而不是预期的“ MyDocumentName.pdf”。
有什么想法吗?