如何在 iframe 中设置 base64 pdf 的文件名?

Posted

技术标签:

【中文标题】如何在 iframe 中设置 base64 pdf 的文件名?【英文标题】:How can I set the filename for base64 pdf in iframe? 【发布时间】:2017-03-23 07:01:14 【问题描述】:

我有一个 base64 格式的 PDF 报告,我想显示嵌入在 html 页面中的文件。为此,我使用 iFrame 并且可以工作,但问题是我无法设置 PDF 的名称,以便在下载时以指定的名称保存它。

我可以设置文件名吗?如果可以,我该怎么做?

这是我的代码:

var iFrameBlock = $("<iframe>").attr(
      "src": base64file_encode,
      "width": "100%",
      "height": "100%",
      "frameborder": "0"
);

$("#previewPDF").html(iFrameBlock);
结果: Preview of PDF

当我尝试下载文件时,要保存的名称是“download.pdf” Save dialog

我尝试了不同的方法,但都不起作用:

    添加属性download="filename.pdf"

       
       var iFrameBlock = $("<iframe>").attr(
          "src": base64file_encode,
          "width": "100%",
          "height": "100%",
          "frameborder": "0",
          "download": "filename.pdf"
       );
       
       

    我尝试更改 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");
       
       

但是,我想阻止使用任何其他库。

感谢您的宝贵时间

【问题讨论】:

找到解决办法了吗? 还没有,不过我用的是文件路径 万一,你找到方法了吗? 【参考方案1】:

iframe 元素无法做到这一点,但作为替代方案,您可以添加锚标记。

var iFrameBlock = $("<iframe>").attr(
    "id": "iframe",
    "src": base64file_encode,
    "width": "100%",
    "height": "100%",
    "frameborder": "0"
);
var aTag = $("<a>Dwonload</a>").attr(
    "href": base64file_encode,
    "download": "yourName.pdf"
);
$("#previewPDF").html(iFrameBlock);
aTag.insertAfter($("#iframe"));

问候,KJ。

【讨论】:

以上是关于如何在 iframe 中设置 base64 pdf 的文件名?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iframe 中设置 Chrome 打印对话框的默认文件名?

如何在浏览器中使用BASE64键打开PDF

如何在 iframe 的“srcdoc”属性中设置 HTML 代码?

如何覆盖 iframe 中设置的 css 类? [复制]

如何在 colorbox iframe 中设置图像的高度和宽度?

在 ImageView 中设置位图图像