【问题标题】:How can I change a base64 application/pdf file name? [duplicate]如何更改 base64 应用程序/pdf 文件名? [复制]
【发布时间】:2019-07-19 14:03:48
【问题描述】:

我正在调用的 API 返回一个字符串,例如 'JVBERi0xL....(more)'

我将结果值设置为变量 pdfFile

var file = "data:application/pdf;base64,"+res.data.result;
// here res.data.result = 'JVBERi0xL....(more)'
this.pdfFile = file;

而我的 Html 代码是

<object :data="pdfFile" name='test' type="application/pdf"  width="100%" height="800px"></object>

这样,我可以在浏览器上显示pdf,但无法更改pdf文件的名称。

帮助: 我需要更改标记为红色的名称。

添加了更大的图片: Larger version of the previous image

【问题讨论】:

  • 大概该屏幕截图来自某种 下载 屏幕。你是如何下载文件的?
  • 截图是我的浏览器屏幕,我在其中显示 pdf 文件。
  • 您能否截个更大的屏幕截图。目前尚不清楚文件名的应用位置。为了获得您问题中的图像,实际发生了什么?
  • 啊,没关系,我现在明白了。这就是 Chrome 呈现 &lt;object&gt; 标记的方式。
  • 我找到了一个重复的,但我认为你不会喜欢它,抱歉 :(

标签: javascript pdf base64 html-object


【解决方案1】:

文件的base64表示只包含文件的内容,不包含文件名。但是您可以通过这种方式手动分配文件名:

function download() {
    const source = 'data:application/pdf;base64,'+res.data.result;
    const downloadLink = document.createElement("a");
    const fileName = 'file.pdf';

    downloadLink.href = source;
    downloadLink.download = fileName;
    downloadLink.click();
}

【讨论】:

  • 是什么让你认为 OP 使用了&lt;a&gt; 标签?
  • 哦,你是对的
  • 试过这个。它可以在我下载文件时更改文件名。但我想在我的屏幕上显示这个名字。
  • 哦,我明白了.. 如果您想显示名称,为什么不将名称绑定到您的视图?
猜你喜欢
  • 2011-11-05
  • 2016-10-28
  • 1970-01-01
  • 2010-10-01
  • 2011-12-02
  • 2015-01-03
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多