Загрузка файлов с использованием модулей ASP.NET .ashx - PullRequest
5 голосов
/ 23 февраля 2010

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

Ответы [ 3 ]

7 голосов
/ 23 февраля 2010

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

context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf");
context.Response.ContentType = "application/pdf";
4 голосов
/ 23 февраля 2010

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

Response.ContentType = "application/pdf"; 
Response.AppendHeader("content-disposition", "inline; filename=" + name ); 
3 голосов
/ 23 февраля 2010
Use     


 Response.Clear();
 Response.ContentType = "application/octet-stream";
 Response.AddHeader("Content-Disposition", "attachment; filename=Report.PDF");                                            
 Response.WriteFile(Server.MapPath("~/YourPath/Report.PDF"));
 Response.End();
...