2009-03-25 2 views
3

ASP.Net, JQuery 및 BlockUI를 사용하여 다운로드 파일 대화 상자가 표시된 후 UI의 차단을 해제하려고합니다. 이 코드를 실행 한JQuery BlockUI - 파일 다운로드 후 UI 차단을 해제하는 방법?

 private void SendFileToUser(byte[] file, string contentType, string filename) 
     { 
      Response.Clear(); 
      Response.ContentType = contentType; 
      Response.AppendHeader("Content-Disposition", "attachment; filename="+filename); 
      Response.OutputStream.Write(file,0,file.Length); 
      Response.OutputStream.Flush(); 
      Response.End(); 
     } 

후, I가 해제하고자 : I 사용 파일 서버 측에 생성이 후

<script type="text/javascript">  
    $(document).ready(function(){   
     $('#<%= BtnExport.ClientID%>').click(function(){ 
      $.blockUI(); 
     }); 
    });  
    </script> 

:

I 수출 버튼이 클릭되는 UI를 차단 UI.

내가 생각 한 다른 옵션 : 아약스는 파일이 생성되었는지 확인 호출을 사용

  1. 설문 조사.
  2. 파일을 Session에 저장하고 동일한 페이지로 리디렉션하고 다운로드를 생성하십시오.

그러나 두 옵션 모두 다소 어려워 보입니다. 그리고 나는 파일 대화 상자를 기다리거나 처리하기 위해 영리한 JavaScript 방법이 있어야한다고 생각합니다.

제안 사항?

답변

0

파일을 세션에 저장하지 마십시오. 엄청난 리소스가 낭비됩니다. 단순히 "귀하의 파일은 잠시 동안 다운로드해야합니다 ..."라는 메시지와 함께 "다운로드"페이지에 양식 데이터를 게시하는 것이 가장 좋습니다. 이것은 www.download.com과 같은 인기있는 다운로드 사이트가 download page에 도착할 때 그렇게하는 방식입니다.

이렇게하면 새로 고침 만하면 다시 시도 할 수 있으며 페이지에 도착하면 모든 데이터가 POST 헤더에 있으므로 세션 시간 초과에 대해 걱정할 필요가 없습니다.