2017년 4월 14일 금요일

fileDownload.js file download after form submit (파일 다운로드 후 처리)


웹 파일다운로드 기능에서 사용자의 요청을 막는(?), 즉 사용자를 대기시키게 만드는 기능이 필요하다.

파일용량이 크거나 사용자의 네트워크 환경이 느린 곳?(해외)

그래서 사용한 것이 jQuery 플러그인 fileDownload!

jquery.fileDownload.js 파일이 필요하다.

아래 링크에서 다운받을 수 있다.

 github.com jquery.fileDownload

 * 참고로 Progress bar 대응으로 blockUI를 사용했다.

$.blockUI({message:"<h1>Downloading...</h1>"}); 
$.fileDownload($('#testForm').prop('action'), { 
    //preparingMessageHtml: "We are preparing your report, please wait...", 
    //failMessageHtml: "There was a problem generating your report, please try again.", 
    httpMethod: "POST", 
    data: $('#testForm').serialize(), 
    successCallback: function (url) { 
    $.unblockUI(); 
    },
    failCallback: function (responseHtml, url, error) { 
    $.unblockUI(); 
    alert("fail Download"); 
    } 
});


그리고 한가지 더 중요한것이 있는데, Java 쪽에서 cookie 설정을 꼭 해주어야한다.
res.setHeader("Set-Cookie", "fileDownload=true; path=/");//중요
cookie 설정을 하지 않으면 successCallback 이 호출되지 않는다.

댓글 없음:

댓글 쓰기

스프링 빈 등록 순서 오류 시 @PostConstruct 사용

  스프링 xml 설정에서 등록할 빈을 명시적으로 지정한 것과 <context:component-scan>와 혼용해서 사용한  경우 빈등록 순서 오류가 발생 할 수도 있습니다. 여러가지 방법이 있지만, 그 중에서 @PostConstruct ...