Chromium 无法从集成阅读器下载 PDF

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

我从服务器向客户端浏览器(包括 PDF-Reader)提供 BLOB。

const file = new File([data], filename, { type: contentType });
const url = URL.createObjectURL(file);
const anchorElement = document.createElement("a");
document.body.appendChild(anchorElement);
anchorElement.href = url;
anchorElement.target = "_blank";

这非常有效,但是从阅读器下载时的文件名是指定的 GUID。 由于 Chromium 的最新补丁(或者可能是 idk 之前的一些补丁),这不再起作用。

文件在阅读器中正确显示,所有 PDF 属性都正确写入,但我无法再下载该文件。下载文件时,不再添加 .pdf 扩展名,然后下载失败并显示

无法下载 - 网络问题

如果我添加 .pdf 扩展名并且 Chromium 将该文件识别为 PDF,也会发生这种情况。 我可以毫无问题地通过

anchorElement.download
下载文件,并且可以毫无问题地从阅读器打印 PDF。

它在 FF 或 Safari 上仍然可以正常工作。

javascript google-chrome blazor microsoft-edge blazor-server-side
1个回答
0
投票

Blob 使用 objectURL 打开。只要显示 PDF,FF 和 Safari 就可以下载 PDF。另一方面,Chrome 需要 objectURL。如果您撤销它,用户将无法再通过浏览器 PDF 查看器中的下载按钮下载 PDF。

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