在Adobe Reader中打开PDF文件,而不是在浏览器中打开

4
当从电子邮件中的链接单击时,下面的代码会导致 PDF 文档在浏览器中打开:
Response.ContentType = mime;
Response.WriteFile(path);
HttpContext.Current.ApplicationInstance.CompleteRequest();

有没有办法强制客户端在Adobe Acrobat/reader中本地打开文件?


2
我认为在浏览器中打开和在 Adobe Reader 中打开是由浏览器或用户设置决定的。很难通过 C# 来绕过这个问题。 - KP.
HTTP规范允许您指定发送的二进制信息的类型,但没有办法指定特定的应用程序来处理内容。最好的方法是强制用户下载PDF并手动打开它,这将在他们本地的PDF查看器中打开,对于许多人来说,这是Adobe Acrobat/Reader。 - Chris Haas
3个回答

5
客户端的行为取决于多个方面,包括客户端设置... 你可以尝试这个。
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename="+filePath); 
Response.WriteFile(path);
HttpContext.Current.ApplicationInstance.CompleteRequest();

好的,搞定了!不过,在某些浏览器中是这样的。而在其他浏览器中则完全相反! - CompanyDroneFromSector7G

2

1
你可以做的最好的事情是添加content-disposition头部。这会导致出现一个下载文件对话框。
Response.AddHeader("content-disposition", "attachment;filename=xxx.pdf");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接