티스토리 뷰
발생일: 2009.09.02
문제:
다운로드 버튼을 누르면 원하는 파일(지금은 jpg 파일)을 다운로드 받을 수 있도록 하고 싶다.
Download 하는 서블릿을 만들어서 응답으로 해당 파일을 뿌려주면 될 것 같은데,
어떻게 하면 될까?
해결책:
브라우저는 요청 후 돌아오는 서버의 응답을 종류에 따라 적합한 형태로 보여준다.
서버는 응답 헤더에 content-type 을 설정해 줌으로써 응답의 종류가 어떤 것인지 알려준다.
(content-type은 MIME에 정의된 메세지 타입 표준이다.)
각 브라우저는 응답 헤더에 있는 content-type 를 파악하여 적합한 형태로 보여주게 된다.
예를 들어, content-type 이 text/plain 라면 일반 문자로 보여주고, image/gif 와 같은 형태라면 그림으로 보여주는 것이다.
위와 같은 상황처럼 jpg 를 브라우저에서 바로 뿌려주는 게 아니라,
브라우저에서 파일로 다운로드 받게 하려 한다면 응답 헤더를 수정해주면 되겠다.
그에 앞서 일단 전체적인 개념 정리를 위해 자바서비스넷의 첨부파일 클릭 시 저장하는 기능 포스트를 읽어보자.
파일을 다운로드 받게 하기 위해선 서블릿에서 응답을 주기 전에 응답 헤더를
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=" + 파일명);
와 같은 형태로 변경해주면 된다.
상세한 예제는 JSPWiki: Making A Download Servlet 를 참고하자.
* 참고
검색해보니 그 외에 다운로드 서블릿을 jar로 만들어 배포하기도 한다.
문제:
다운로드 버튼을 누르면 원하는 파일(지금은 jpg 파일)을 다운로드 받을 수 있도록 하고 싶다.
Download 하는 서블릿을 만들어서 응답으로 해당 파일을 뿌려주면 될 것 같은데,
어떻게 하면 될까?
해결책:
브라우저는 요청 후 돌아오는 서버의 응답을 종류에 따라 적합한 형태로 보여준다.
서버는 응답 헤더에 content-type 을 설정해 줌으로써 응답의 종류가 어떤 것인지 알려준다.
(content-type은 MIME에 정의된 메세지 타입 표준이다.)
각 브라우저는 응답 헤더에 있는 content-type 를 파악하여 적합한 형태로 보여주게 된다.
예를 들어, content-type 이 text/plain 라면 일반 문자로 보여주고, image/gif 와 같은 형태라면 그림으로 보여주는 것이다.
위와 같은 상황처럼 jpg 를 브라우저에서 바로 뿌려주는 게 아니라,
브라우저에서 파일로 다운로드 받게 하려 한다면 응답 헤더를 수정해주면 되겠다.
그에 앞서 일단 전체적인 개념 정리를 위해 자바서비스넷의 첨부파일 클릭 시 저장하는 기능 포스트를 읽어보자.
파일을 다운로드 받게 하기 위해선 서블릿에서 응답을 주기 전에 응답 헤더를
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=" + 파일명);
와 같은 형태로 변경해주면 된다.
상세한 예제는 JSPWiki: Making A Download Servlet 를 참고하자.
* 참고
검색해보니 그 외에 다운로드 서블릿을 jar로 만들어 배포하기도 한다.
반응형
댓글
공지사항