我在base64中有一个PDF报告,我想显示嵌入在HTML页面中的文件.要做到这一点,我使用iFrame并工作,但问题是我无法设置PDF的名称,以便下载时它将以指定的名称保存.
我可以设置文件名吗?如果是,我该怎么办?
这是我的代码:
var iFrameBlock = $("<iframe>").attr({
"src": base64file_encode,
"width": "100%",
"height": "100%",
"frameborder": "0"
});
$("#previewPDF").html(iFrameBlock);Run Code Online (Sandbox Code Playgroud)
当我尝试下载文件时,要保存的名称是"download.pdf" 保存对话框
我尝试了不同的方法,但也不工作:
添加属性download ="filename.pdf"
var iFrameBlock = $("<iframe>").attr({
"src": base64file_encode,
"width": "100%",
"height": "100%",
"frameborder": "0",
"download": "filename.pdf"
});
Run Code Online (Sandbox Code Playgroud)
我尝试更改iframe中的值,但我找到了正确的属性,Chrome拒绝了该操作.
var iframe = $("iframe")[0];
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
//here I suppose is the label of the filename
$(iframeDocument).find("viewer-pdf-toolbar");
Run Code Online (Sandbox Code Playgroud)
但是,我想防止使用任何其他库.
感谢您的时间
我正在使用 PDFKit(无节点)在浏览器中生成 PDF,并通过 src 属性将其显示为 iframe 或嵌入标签。生成的 blob URL 是某种 UUID。所以整个页面看起来像:
<embed src="blob:http://localhost/eeaabb..."/>
Run Code Online (Sandbox Code Playgroud)
PDF 看起来不错,但是当我在 Chrome 中单击下载链接时,默认文件名是 UUID。在 FireFox 中,它只是“document.pdf”。
如果这是服务器生成的 PDF,我将使用 Content-Disposition 和/或操作 URL,因此它的最后一部分是我想要的名称,但这对于客户端生成的对象似乎是不可能的。
我尝试过的事情:
有没有办法解决这个问题,以便我可以控制默认/建议的文件名?