2010-04-27 2 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

+0

Блестящий. Работает. Для типов файлов, отличных от PDF, я установил ContentType в «application/octet-stream». По какой-то причине браузер пытается открыть эти файлы с помощью считывателя Acrobat. Пробовал это на FF, а также на Chrome - такое же поведение. Есть идеи? – rossmcm

+0

Попробуйте использовать эти другие файлы с соответствующим типом mime. –

2

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

+0

Gotcha. Благодарю. – rossmcm

Смежные вопросы