2014-04-01 40 views
0

我产生,我想浏览器试图在标签中打开(这些浏览器,可以这样做)的服务器上的PDF格式,而不是下载。是否有可能触发在Chrome中打开一个PDF与下载它

我敢肯定,这是具有或不具有某种头,但我无法找到它的问题。是否有可能控制用户的浏览器是否显示或下载您的资产?

+1

您是否试过指定'content-type'](http://superuser.com/a/515622)? – admdrew

+0

@admdrew或...也许我指定了错误的内容类型期间,因为我在常量中有错误的值。那么不要问这个问题。就像我想的那样,答案是“Content-Disposition” –

回答

1

的Acrobat Reader X的下编辑>首选项>互联网复选框来启用或禁用浏览器的观点,不管浏览器插件的状态。

如果检查没有问题,或者你有一个较新的版本,您可以检查是否插件在浏览器中,你积极,每个浏览器都有不同的插件。

快速检查是在浏览器中打开一个本地pdf文件,如file:// localhost/C:/dir1/.../file.pdf,如果Adobe Reader有正确的检查并且插件是否则,在浏览器中显示文件的操作,即使它是本地文件,浏览器也会要求文件夹下载它。

0

所以在我的具体情况我会发送错误的content-type(感谢@admdrew指着我在正确的方向),由于编码恒定的错误。

然而,得到的答案是,的确有头 - 用PDF文件,将建议至少铬是否应该打开或下载文件的工作时至少。 This header is Content-Disposition。在我的情况下设置它:

Response.Headers["Content-Disposition"] = @"attachment; filename="foo.pdf" 

触发了一个下载,而忽略它触发的页面打开。

另外,以上的链接状态

如果该头在与所述应用程序/ octet- 流的内容类型的响应中使用的,隐含的建议是,用户代理 不应该显示响应,但直接输入`保存响应 as ...'对话框。

虽然我发现使用Content-Type: application/pdf在这两种情况下工作正常。

相关问题