我正在尝试编写 MVC 端点,该端点可以选择将内容配置设置为内联或附件,以便在新的浏览器选项卡中显示文件(pdf)或下载它。用户界面允许用户选择他们想要如何打开文件(不是我的设计 - 无法更改它的这方面)。
请注意,这在 Chrome/Edge 中正如预期的那样工作。
在 Firefox 中,PDF 的应用程序设置似乎胜过内容配置。有没有可靠的方法让 Firefox 尊重内容处置?最好是一种可以在浏览器的普通安装中工作的方式,这样最终用户不需要对其进行任何修改即可工作。
这是我用来设置响应的代码(类派生自 ApiController):
var response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
response.Content = new PushStreamContent((stream, content, context) =>
{
dispatcher.Dispatch(request, stream);
}, new MediaTypeHeaderValue(MediaTypeNames.Application.Pdf));
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue(contentDisposition)
{
FileName = $"{auto_generated_fileName}.pdf",
};
response.Headers.CacheControl = new CacheControlHeaderValue()
{
NoCache = true,
NoStore = true
};
return response;
Run Code Online (Sandbox Code Playgroud)