Загрузка файлов с использованием модулей ASP.NET .ashx

У меня есть страница ASP.NET с iframe для отображения некоторых отчетов в формате PDF на этой странице. Когда пользователь выбирает тип отчета из раскрывающегося списка, я добавляю необходимые для отчета данные в сеанс ASP.NET и изменяю атрибут «src» iframe на адрес модуля .ashx, который генерирует отчет .pdf. Но если плагин Adobe для просмотра .pdf файлов в браузере не установлен, браузер предлагает сохранить файл отчета и имя предлагаемого файла "HandlerName.ashx". Но я хочу, чтобы браузер предлагал сохранить файл с именем "Report.pdf". Я могу это сделать? Есть ли обходные пути?


person w1z    schedule 23.02.2010    source источник
comment
Внимание. Необходимо отображать сгенерированный файл .pdf, если установлен плагин Adobe...   -  person w1z    schedule 23.02.2010


Ответы (2)


Попробуйте встроенное содержание-диспозицию, однако я должен проверить это:

Response.ContentType = "application/pdf"; 
Response.AppendHeader("content-disposition", "inline; filename=" + name ); 
person Mike Chaliy    schedule 23.02.2010
comment
Майк, это здорово. Спасибо из Харькова, GlobalLogic. Мир тесен ;) - person w1z; 23.02.2010
comment
:), но насколько я знаю, это не сработает... А кто ты конкртейней? - person Mike Chaliy; 23.02.2010
comment
Я бы немного поиграл с этим решением, но кажется, что оно не работает... тісніше немає вже куди :D - person Yaroslav Havrylovych; 03.05.2017

Добавьте следующий заголовок в ваш ashx-файл:

context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf");
context.Response.ContentType = "application/pdf";
person Pbirkoff    schedule 23.02.2010
comment
В этом случае браузер предлагает загрузить файл при установленном плагине Adobe... - person w1z; 23.02.2010