2010-04-27 29 views
0

这个有点复杂......可以说我有用户浏览器中显示的PDF文件列表。每个文件名不是指向文件的链接,而是一个ASP页面,说在浏览器中打开一个新选项卡,其中包含对ASP请求的响应

<--a href="viewfile.asp?file=somefile.pdf">somefile.pdf</a> 

我想viewfile.asp来获取文件(我已经做了该位确定),但是我想让该文件由浏览器加载,就好像用户直接打开PDF文件一样。我希望它在新标签页或浏览器窗口中打开。

这里是(简化)viewfile.asp

<% 
var FileID = Request.querystring ("file") ; 
var ResponseBody = MyGETRequest (SomeURL + FileID) ; 

if (MyHTTPResult == 200) 
    { 
    if (ExtractFileExt (FileID).toLowerCase = "pdf") 
     { 
     ?????? // return file contents in new browser tab 
     }   
.... 
%> 

回答

1

我会做到这一点。

<a href="viewfile.asp?file=somefile.pdf" target="_blank">somefile.pdf</a> 

这样,这会打开一个新的窗口/选项卡。任何服务器端语言都不能控制浏览器。

以服务为PDF,请拨打

<% response.ContentType="application/pdf" %> 
+0

谢谢你。我的问题的难点在哪里(将PDF作为PDF返回)!因此,我正在服务器的ASP页面中查找PDF文件(我从第三个网站检索到)的内容。我需要做什么才能将其发送回浏览器,以便浏览器将其视为PDF? – rossmcm 2010-04-27 01:16:46

+0

辉煌。作品一种享受。对于PDF以外的文件类型,我将ContentType设置为“application/octet-stream”。出于某种原因,浏览器也尝试使用Acrobat Reader打开这些文件。在FF和Chrome上试用它 - 同样的行为。有任何想法吗? – rossmcm 2010-04-27 03:31:46

+0

尝试使用各自的MIME类型来服务这些其他文件。 – 2010-04-27 10:35:48

2

由于丹尼尔指出,你可以控制是否在新窗口中打开,但不是一个新的选项卡。如果用户已经配置了他们的浏览器,以便在新标签页中打开新窗口(就像我一样),那么你就是金。如果不是,它会在新窗口中打开。您无法控制选项卡。

+0

哎呀。谢谢。 – rossmcm 2010-04-27 01:17:22

相关问题