在浏览器插件中打开pdf

时间:2009-06-02 11:29:01

标签: asp.net-mvc

我如何(在我的控制器中)发送在浏览器中打开的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));
}

添加上面的编辑后,它可以正常工作,谢谢。

3 个答案:

答案 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文件。