Откройте в браузере новую вкладку с ответом на запрос ASP - PullRequest
0 голосов
/ 27 апреля 2010

Это немного сложно ... Допустим, у меня есть список файлов PDF, отображаемых в браузере пользователя. Каждое имя файла - это ссылка, указывающая не на файл, а на страницу 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
        }        
....
%>

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

Как указывает Даниэль, вы можете управлять открытием в новом окне, но не в новой вкладке. Если пользователь настроил свой браузер так, чтобы новые окна открывались в новых вкладках (как я), то вы - золотой. Если нет, он откроется в новом окне. Вы не можете управлять вкладками.

1 голос
/ 27 апреля 2010

Я бы сделал это.

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

Таким образом, это открывается в новом окне / вкладке. Любой язык на стороне сервера не имеет контроля над браузером.

Чтобы использовать его в формате PDF, позвоните

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