사용자 도구

사이트 도구


java:servlet:download

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
java:servlet:download [2011/11/09 13:57]
kwon37xi 새로 만듦
java:servlet:download [2012/09/17 10:54]
kwon37xi
줄 1: 줄 1:
 ====== File Download Servlet ====== ====== File Download Servlet ======
 아래 클래스는 MS IE, Mozilla, Opera 등을 위해 한글 파일명 다운로드 처리까지 된 다운로드 도우미 클래스이다. 아래 클래스는 MS IE, Mozilla, Opera 등을 위해 한글 파일명 다운로드 처리까지 된 다운로드 도우미 클래스이다.
-서블릿에서 download() 메소드를 호출하여 사용하면 된다.현재 Tomcat 5.0.28 에서 MS IE 6.0, FireFox 1.0.6, Opera 8.5, 한글 인코딩 EUC-KR 일때 한글 파일명이 제대로 다운로드 되는 것을 확인하였다.+ 
 +서블릿에서 download() 메소드를 호출하여 사용하면 된다. 
 + 
 +현재 Tomcat 5.0.28 에서 MS IE 6.0, FireFox 1.0.6, Opera 8.5, 한글 인코딩 EUC-KR 일때 한글 파일명이 제대로 다운로드 되는 것을 확인하였다.
  
 <code java> <code java>
줄 103: 줄 106:
     String userAgent = request.getHeader("User-Agent");     String userAgent = request.getHeader("User-Agent");
          
 +    // attachment; 가 붙으면 IE의 경우 무조건 다운로드창이 뜬다. 상황에 따라 써야한다.
     if (userAgent != null && userAgent.indexOf("MSIE 5.5") > -1) { // MS IE 5.5 이하     if (userAgent != null && userAgent.indexOf("MSIE 5.5") > -1) { // MS IE 5.5 이하
       response.setHeader("Content-Disposition", "filename=" + URLEncoder.encode(filename, "UTF-8") + ";");       response.setHeader("Content-Disposition", "filename=" + URLEncoder.encode(filename, "UTF-8") + ";");
줄 129: 줄 133:
         outs.write(buffer, 0, read);         outs.write(buffer, 0, read);
       }       }
 +    } catch (IOException ex) {
 +        // Tomcat ClientAbortException을 잡아서 무시하도록 처리해주는게 좋다.
     } finally {     } finally {
       try {       try {
줄 147: 줄 153:
   - 추가(2010/08/30) : response.setHeader("Content-Transfer-Encoding", "binary"); 도 함께 할 것.   - 추가(2010/08/30) : response.setHeader("Content-Transfer-Encoding", "binary"); 도 함께 할 것.
   - 추가(2011/11/09) : userAgent null 체크 추가. 가끔 웹 다운로더 플러그인들이 User-Agent 헤더를 안보내주는 현상이 있다.   - 추가(2011/11/09) : userAgent null 체크 추가. 가끔 웹 다운로더 플러그인들이 User-Agent 헤더를 안보내주는 현상이 있다.
 +  - 추가(2012/07/23) : Content-Disposition 헤더 값의 문자열 중에 IE의 경우 "attachment;"가 있어야 다운로드 창이 뜬다. 아니면 MimeType이 ''application/octet-stream'' 일지라도 파일명의 MimeType에 따라 행동한다.
java/servlet/download.txt · 마지막으로 수정됨: 2012/09/17 10:54 저자 kwon37xi