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

Boh*_*ohn 5 asp.net-mvc asp.net-mvc-5

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

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

Nko*_*osi 7

你的标签表示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");
    }
}
Run Code Online (Sandbox Code Playgroud)

在客户端

<a href="/Pdf/123456" target="_blank">
    <img src="images/pdficon.jpg">
</a>
Run Code Online (Sandbox Code Playgroud)

更新:

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

target锚标记属性是什么将告诉浏览器在新标签页中打开链接.