【发布时间】:2018-05-23 15:17:58
【问题描述】:
.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;
}
我认为这会起作用,但事实并非如此。我的锚标签上也有 target="_blank" 。如何在新选项卡中打开新生成的 pdf 文件,而不是让浏览器将其下载到用户的硬盘上?谢谢
【问题讨论】:
-
您需要将内容配置从附件更改为内联(顺便说一句,
System.Net.Mime.DispositionTypeNames.Inline有一个常量)。见iana.org/assignments/cont-disp/cont-disp.xhtml -
@ckuri - 就是这样。请张贴作为答案,以便我可以给你适当的信用。谢谢
-
按照您的建议,我将其发布为答案。
-
@BoundForGlory 你能告诉我,你是如何使用 target _blank 从浏览器调用这个 web api 的?
标签: c# pdf asp.net-web-api