웹 파일다운로드 기능에서 사용자의 요청을 막는(?), 즉 사용자를 대기시키게 만드는 기능이 필요하다.
파일용량이 크거나 사용자의 네트워크 환경이 느린 곳?(해외)
그래서 사용한 것이 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 이 호출되지 않는다.
댓글 없음:
댓글 쓰기