【问题标题】:Is there any way to open a PDF from blob in new window with name有什么方法可以在新窗口中用名称从 blob 打开 PDF
【发布时间】:2019-11-03 07:43:42
【问题描述】:

我从 API 接收一个作为 blob 的 PDF,我想在新选项卡中打开它,并给它一个我想要的文件名。

文件正在新选项卡中打开,但名称和链接如下所示
链接:“blob:http://localhost:3000/6ff6920c-2737-49cb-9359-e641e4af765d
PDF名称:“6ff6920c-2737-49cb-9359-e641e4af765d” 这个名字每次打开都不一样

我用createObjectURL打开新标签

const fileUrl = URL.createObjectURL(blob)
window.open(fileUrl);

所以,我想在新标签页中打开文件时更改文件名,而不是自动生成一个。

【问题讨论】:

  • 您是该系统的最终用户(无法访问浏览器端代码)吗?还是前端开发人员(完全控制接收 JavaScript)?到目前为止,您尝试过什么?
  • 不,我也在 API 中生成 PDF
  • 我尝试将名称/文件名/文件名属性添加到 blob,尝试转换为 FormData,但没有任何帮助。我还尝试将“名称”参数添加到 API 的标头中,这也没有改变任何内容

标签: javascript pdf blob


【解决方案1】:

目前看来这是不可能的,至少不能通过将名称嵌入数据 URL/URI 中。

我今天遇到了同样的问题,做了一些研究,得出了这个结论。数据 URL/URI 的媒体类型部分(即 RFC 2397 定义的 data:[<media_type>],<data> 形式的字符串)实际上允许附加参数;例如,data:application/pdf;name=myPDFfile.pdf;base64,...。这样的参数似乎没有标准化,最常见的浏览器也不支持它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 2017-06-12
    • 2014-07-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多