27

好吧,我正在使用以下代码将从 web 服务返回的 PDF 呈现为 base64 字符串。

<html>
  <object data="data:application/pdf;base64,{!pdfStampingResponse.pdfBase64}" type="application/pdf" width="100%" class="internal">
    <param name="view" value="fitH" />            
  </object>
</html>

这很好用,但我想在用户尝试保存文件时设置下载文件名。不知何故,我无法找到可行的解决方案。知道怎么做吗?

4

4 回答 4

3

请试试这个

const FILE_NAME = 'myfile.pdf';
const file_header = ';headers=filename';

fetch('https:your-url/myfile.pdf?dl=0').then(r => r.blob())
.then(blob=>{
  const f = new FileReader();
  f.onload = () => myPdfViewer.src = f.result.replace(';', file_header + encodeURIComponent(FILE_NAME) + ';');
  f.readAsDataURL(blob);
  });

然后将 id myPdfViewer 插入 iframe。我希望它可以帮助。

于 2018-10-24T10:33:36.367 回答
0

download="yourfilename"在锚标记中使用。

下载属性指定当用户单击超链接时将下载目标。

PS:此属性仅在设置了 href 属性时使用。

于 2018-02-27T18:50:40.603 回答
0

有什么办法可以让我控制这个名字吗?

不可以。您无法控制存储在用户本地文件系统中的文件的名称。

见这里:https ://stackoverflow.com/a/44061387/9913319

于 2018-06-12T13:35:20.617 回答
0

您可以使用以下代码语法

<object data="data/test.pdf" type="application/pdf" width="300" height="200">
  alt : <a href="data/test.pdf">test.pdf</a>
</object>

在这里找到这个。

希望能帮助到你。

于 2015-10-27T10:39:33.130 回答