2011-11-14 3 views
0

나는 사용자가 pdf 파일을 다운로드 할 수있는 옵션을 제공하는 gridview를 가지고 있습니다. 그들이 pdf 아이콘을 클릭 할 때 때때로 그것은 새로운 탭에서 pdf 파일을 열 때로는 다운로드를 시작합니다. 어떻게하면 항상 다운로드 할 수 있습니까?PDF 파일을 다운로드하려면 열기 대화 상자

+0

다릅니다. 우리가 답변을 제공하기 전에 그리드에서 PDF를 정의하거나 검색하는 방법에 대한 몇 가지 코드를 보여줄 필요가 있습니다. –

+0

pdf 아이콘을 클릭합니다. javascript를 사용하여 파일을 여는 중입니다. window.open ('src'); false를 반환합니다. – user728630

답변

3

단추 (이미지 단추, 링크 단추 또는 단추)를 추가하고 GridView의 RowCommand 이벤트를 처리해야합니다. RowCommand 핸들러에서 파일을 다운로드하기위한 코드를 작성할 수 있습니다.

Response 개체의 메서드를 사용할 수 있습니다.

string filepath=MapPath("~/files/file.pdf"); 
byte []bytes=System.IO.File.ReadAllBytes(filepath); 

Response.Clear(); 
Response.ClearHeaders(); 
Response.AddHeader("Content-Type", "application/octet-stream"); 
Response.AddHeader("Content-Length", bytes.Length.ToString()); 
Response.AddHeader("Content-Disposition","attachment; filename=file.pdf"); 
Response.BinaryWrite(bytes); 
Response.Flush(); 
Response.End(); 
2

항상 다운로드를 강제하려면 AVD가 보여준대로 Content-Disposition 헤더를 추가해야합니다. 그러나, 나는 이것이 완전히 불필요하다는 것을 안다; 필자는 PDF에 대한 링크를 새 창에서 열어도 충분하다고 생각합니다. 즉, target="_blank"을 정의하십시오. 예 : 다음

<a href="file.pdf" target="_blank">invoice</a> 

, 그는이 파일을 로컬로 저장하거나 화면을보고 싶어하는지 여부를 사용자에게 달려 있습니다. 중요한 것은 이것이 사용자가보고있는 현재 페이지를 방해하지 않는다는 것입니다.

+0

내 문제가 해결되었습니다. 감사합니다! – Wint