Bou*_*ory 2 c# pdf asp.net-web-api
.Net 4.6.1 C#
我在运行时生成一个pdf文件,可以成功下载.我想在新标签页中打开新创建的pdf文件,而不是下载它.这是我的代码(Web API 2.1方法):
public HttpResponseMessage ToPDF(string cn)
{
var stream = new MemoryStream();
stream = GeneratePDF();
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream.ToArray())
};
result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "file.pdf"
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return result;
}
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效,但事实并非如此.我的锚标签上也有target ="_ blank".如何在新选项卡中打开我新生成的pdf文件,而不是想要将其下载到用户硬盘的浏览器?谢谢
除了David Mkheyan关于设置正确MIME类型的建议之外,您还需要将内容处置更改attachment为inline.
result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue(System.Net.Mime.DispositionTypeNames.Inline)
{
FileName = "file.pdf"
};
Run Code Online (Sandbox Code Playgroud)
根据https://www.iana.org/assignments/cont-disp/cont-disp.xhtml attachment表示"用户控制的显示"并且inline"自动显示".
| 归档时间: |
|
| 查看次数: |
3433 次 |
| 最近记录: |