我如何(在我的控制器中)发送在浏览器中打开的pdf。我试过这个,但它只是下载文件(ie和firefox)而不问。
public ActionResult GetIt()
{
var filename = @"C:\path\to\pdf\test.pdf";
// Edit start
ControllerContext.HttpContext.Response.AddHeader("Content-Disposition", String.Format("inline;filename=\"{0}\"", "test.pdf"));
// Edit stop
return File(filename, "application/pdf", Server.HtmlEncode(filename));
}
添加上面的编辑后,它可以正常工作,谢谢。
答案 0 :(得分:6)
您需要将内容处置HTTP标头设置为内联,以向浏览器指示它应该尝试使用PDF插件(如果可用)。
类似于:内容 - 处置:内联;文件名=检验.pdf 强>
请注意,您无法强制使用插件,这是浏览器做出的决定。
答案 1 :(得分:2)
这个(除了其他标题之外)在一个简单的.net网络应用程序中为我做了诀窍:
Response.AddHeader(“Content-Disposition”,String.Format(“inline; filename =”“{0}”“”,“FileName”)
我不熟悉MVC,但希望这会有所帮助。
答案 2 :(得分:1)
我认为这取决于客户端如何处理PDF文件。如果它已设置让Adobe Reader打开浏览器插件中的文件,它会这样做,但也许您已将其设置为下载文件而不是打开它。 在任何情况下,都无法控制如何在用户的计算机上打开PDF文件。