如何控制在新浏览器选项卡中打开的 PDF 的文件名?

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

我正在开发一个 Web 应用程序,我们在服务器端生成 PDF 报告并将其发送到客户端。当用户单击前端上的按钮时,PDF 将在新的浏览器选项卡中打开。但是,新选项卡中 PDF 的文件名是浏览器生成的随机数。

这是我的服务器端代码的相关部分(C#):

byte[] pdf = report.Render("PDF");
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new ByteArrayContent(pdf);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("inline");
response.Content.Headers.ContentDisposition.FileName = $"Report_{adNo}.pdf";
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return response;

我已将 Content-Disposition 标头的 FileName 属性设置为特定文件名,但这似乎只影响下载 PDF 时的文件名,而不是在浏览器中查看时影响文件名。

有没有办法控制在新浏览器选项卡中打开 PDF 时的文件名?任何帮助将不胜感激。

pdf browser http-headers content-disposition dynamic-rdlc-generation
1个回答
0
投票

选项卡的主控件通常是 HTML 载体。

因此,当在基于 Chromium 的浏览器中下载 PDF 时,它通常不使用 PDF 文件名或其内容,而是使用外包装。在这里,我更改了 Microsoft 运营商,您可以看到 HTML 页面标题是总体控制。

enter image description here

下载没有固有名称,只是 application/pdf enter image description here

相同的浏览器,相同的 PDF 下载,除了换行方法之外没有任何改变,现在页面标题被忽略,URL 用作选项卡标题。因此,如果没有 HTML 页面标题,URL 就是后备,如果该 URL 是另一个页面中的 Blob,那么它将是 Blob ID。

enter image description here

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