2011-12-30 2 views
2

한 지점에서 PDF 파일을 생성하고 다음 페이지를로드하는 ASP.NET 응용 프로그램이 있습니다. 두 개의 분리 된 버튼으로 쉽게이 작업을 수행 할 수 있지만 하나의 버튼으로이 작업을 수행하면 훨씬 더 힘들어집니다.Response.TransmitFile 및 Server.Transfer

같은 버튼으로 두 버튼을 모두 누르면 PDF가 다운로드되지만 페이지가로드되지 않습니다. 나는 파일이 전송 된 후에도 쓰레드를 잠자 게했는데 기다릴 것이지만 그 후에 멈출 것이다.

나는 직장을 만들기 위해 노력 해왔다 코드를 첨부 :

Response.ContentType = "application/pdf"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=labels.pdf"); 
Response.TransmitFile(Server.MapPath("~/"+randomNumber.ToString()+".pdf")); 
Server.Transfer("~/createshipment.aspx", true); 
+1

Server.Transfer 대신 Response.Write를 시도 할 수 있습니다. 다음 페이지와 init로 이동할 수도 있습니다. 거기에서 다운로드. – user1231231412

답변

1

서버에서 두 가지 다른 응답을받을 수는 없지만 그렇게하려고합니다.

먼저 서버에서 PDF를 반환하고 싶습니다. 둘째, 서버에서 createshipment.aspx 페이지를 반환하기를 원합니다.

이것은 통신 프로토콜에 대한 것입니다. 아마도 가장 좋은 해결책은 이미 다른 사용자가 제시 한 것입니다. competent_tech - 새 창 (자바 스크립트의 window.open)을 열 수 있으며이 새 창은 PDF를 반환하고 메인 창을 서버에 게시하고 리디렉션 할 수 있습니다. createshipment.aspx.

0

... 현재 페이지의 실행을 종료하고 지정된 사용하여 새 페이지의 실행을 시작한다 "server.transfer 때문이다 페이지의 URL 경로 ".

가장 좋은 방법은 PDF를 가져온 클라이언트에서 새 창을 연 다음 사용자를 다음 페이지로 이동시키는 데 필요한 모든 다시 게시를 수행하는 것입니다.

+0

왜 파일을 다운로드하고 잠자기 한 다음 다음 페이지로드를 중지합니까? –

+0

그것은 이상한 행동처럼 보입니다. 이벤트 로그에보고되는 예외가 있습니까? 페이지 자체에 오류가있는 것 같습니다. 페이지의 출처를보고 글이 어디에서 멈추는 지 확인할 수 있습니다. 그건 당신에게 단서를 줄 수 있습니다. –

1

요약하면 "이 파일을 다운로드 해 주셔서 감사합니다."와 같은 내용의 다음 페이지로 이동하여 다운로드를 시작하고 싶습니다.

당신이해야 할 일은 PDF 파일을 생성하고 어딘가에 (디스크 또는 DB 중 어느 것이 든 당신의 어플리케이션에서 더 쉬운 것) 저장할 필요가있을 때 클릭하십시오. 새 파일의 이름/위치를 저장하십시오. DB)를 세션 변수에 저장하고 다음 페이지로 리디렉션합니다. 여기로 옮길 이유가 없습니다. 그 다음 페이지에서 저장된 파일을 가리키는 숨겨진 iframe을 추가해야합니다.

또는 버튼 클릭은 PDF를 생성하는 페이지를 가리키는 숨겨진 iframe을 포함하는 다음 페이지로의 링크 일 수 있습니다. 이것은 조금 간단하지만 원래 페이지에서 매개 변수를 PDF를 생성하는 페이지로 전달해야하는 경우 잘 작동하지 않습니다.

0

나는 이것이 오래된 것을 알고 있지만, 나는 (비슷한 정보를 찾고있는) 그것을보고있다.

나는이 일으키는 문제라고 생각하는거야 :

Response.TransmitFile(Server.MapPath("~/"+randomNumber.ToString()+".pdf")); 

당신은 실제 파일의 경로를 매핑 할 필요가 아니라 일부 무작위로 생성 된 파일 이름을 것 - 또는 내가 몇 가지 단계를 놓친 거지?

+0

그건 정말 문제가되지 않습니다. 파일은 코드의 앞부분에 생성됩니다. randomNumber는 범위 내에 있고 범위에서 벗어난 동일한 숫자를 반환합니다. –

관련 문제