JavaScript 锚文件下载 - 覆盖 Content-Disposition 标头中的文件名

问题描述 投票:0回答:1

如标题所述,我使用 JS、锚点 URL 和下载属性从外部系统获取文件。

问题是我必须以特定文件名下载它,并且 PDF 文件预览包含一个

Contain-Disposition
标头以及来自服务器的文件名。对于 Chrome,该标头中的标题具有更高的优先级,我不知道如何自定义标题或覆盖该标头标题。

是否有仅使用客户端 JavaScript 的解决方法?

javascript download anchor title content-disposition
1个回答
0
投票

正如@Dai在评论中所建议的,您可以使用类似于以下的实现来覆盖

Content-Disposition
标头中的文件名:

fetch("url_to_your_pdf_file.pdf")
  .then((response) => response.blob())
  .then((blob) => {
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = "desired_filename.pdf";
    a.click();
    URL.revokeObjectURL(url);
  })
  .catch((error) => {
    console.error("Error fetching the PDF:", error);
  });

fetch 函数是纯 JavaScript 的一部分,您不需要任何外部库即可使用它。

© www.soinside.com 2019 - 2024. All rights reserved.