2010-02-23 9 views
5

이 페이지에 일부 PDF 보고서를 표시 할 수있는 iframe이있는 ASP.NET 페이지가 있습니다. 사용자가 드롭 다운에서 보고서 유형을 선택하면 보고서 데이터에 필요한 것을 ASP.NET 세션에 추가하고 iframe의 특성 "src"를 .pdf 보고서를 생성하는 .ashx 모듈 주소로 변경합니다. 그러나 브라우저에서 .pdf 파일을보기위한 Adobe glug-in이 설치되어 있지 않으면 브라우저는 보고서 파일을 저장하고 제안 된 파일의 이름을 "HandlerName.ashx"로 제안합니다. 하지만 브라우저에서 "Report.pdf"라는 이름으로 파일을 저장하도록 제안합니다. 내가 할 수 있을까? 해결 방법이 있습니까?ASP.NET .ashx 모듈을 사용하여 파일 다운로드

+0

주의. Adobe 플러그인이 설치된 경우 생성 된 .pdf 파일을 표시해야합니다. – w1z

답변

4

시도 인라인 내용 처분을, 그러나 나는 이것을 확인해야 :

Response.ContentType = "application/pdf"; 
Response.AppendHeader("content-disposition", "inline; filename=" + name); 
+0

Mike, 좋아. Kharkov, GlobalLogic에서 감사드립니다. Мир тесен;) – w1z

+0

:)하지만 지금까지 나는 이것이 작동하지 않을 것임을 압니다 ... А кто ты конкртейней? –

+0

나는이 해결책으로 조금 놀 것이지만 그것이 효과가없는 것 같다 ... "тісніше немає вже куди : D" –

7

은 ASHX 파일에 다음과 같은 헤더를 추가

context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf"); 
context.Response.ContentType = "application/pdf"; 
+0

+1이 빠름 : – Diadistis

+0

이 경우 브라우저는 Adobe 플러그인을 설치할 때 파일을 다운로드 할 것을 제안합니다. – w1z

3
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();