在浏览器的新选项卡中打开PDF

时间:2016-05-26 15:02:11

标签: asp.net-mvc asp.net-mvc-5

之前从未这样做过,所以不确定它涉及到什么。我做了搜索并找到了许多答案,但它们比我需要的更复杂。例如,他们需要放大,生成,创建准确的缩略图,在网页中嵌入实际的PDF等......但我的问题更简单: 如果我在网页上显示他的信息的人有一些PDF显示我只想在页面上放置一个通用的PDF图标,人们点击它就会在浏览器的新标签页中打开实际的PDF。 /强>

这样做涉及什么? 它不像文件路径,PDF在SQL Server中保存为二进制对象,或者它在SQL Server中保存的任何内容..它不是服务器上的文件磁盘路径

2 个答案:

答案 0 :(得分:6)

您的代码表示asp.net-mvc。

创建一个控制器来处理PDF文件的请求

伪:

[RoutePrefix("Pdf")]
public class PdfController : Controller {
    [Route("{id}"]
    public ActionResult GetPDF(int id) {    
        //...Code to extract pdf from SQLServer and store in stream
        Stream stream = GetDataFromSQLServerById(id);
        return File(stream,"filename.pdf");
    }
}

在客户端

<a href="/Pdf/123456" target="_blank">
    <img src="images/pdficon.jpg">
</a>

更新

参考@ ChrisPratt的评论; (我忘记在答案中加入)

锚标记上的target属性将告诉浏览器在新标签中打开链接。

答案 1 :(得分:1)

为您的链接创建一个Controller操作

<a href="<controller/action/databaseRecordId>" target="_blank">
<img src="<image-path>">
</a>

查看代码

:my_object