- <%@ page
- language="java"
- pageEncoding="EUC-KR"
- contentType="text/html; charset=EUC-KR"
- %>
- <%@page import="java.io.File"%>
- <%@page import="java.io.BufferedInputStream"%>
- <%@page import="java.io.OutputStream"%>
- <%@page import="java.io.FileInputStream"%>
- <%
- String imgPath = (String)request.getAttribute("imgPath");
- // 이미지 파일 정보 없을때 에러시 메시지 출력
- if(imgPath.length() == 0){
- out.print("DB 조회 실패");
- return;
- }
- // 파일 다운로드
- try{
- // 파일 존재 확인
- File file = new File(imgPath);
- if (!file.exists()){
- throw new Exception();
- }
- // 파일명 변환
- int index = imgPath.lastIndexOf("/") + 1;
- String fileName = imgPath.substring(index);
- String convertString = new String(fileName.getBytes("euc-kr"), "8859_1");
- fileName = convertString;
- // response header setting
- response.setContentType("application/unknown");
- response.setHeader("Content-disposition","attachment;filename=" + fileName);
- int read;
- byte readByte[] = new byte[4096];
- BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));
- OutputStream outs = response.getOutputStream();
- while ((read = fin.read(readByte, 0, 4096)) != -1) {
- outs.write(readByte, 0, read);
- }
- outs.flush();
- outs.close();
- fin.close();
- out.clear();
- out = pageContext.pushBody();
- }catch (Exception e){
- // 에러 발생시 처리
- out.print("에러발생");
- }
- %>
중요부분은 하단에서의 response 의 처리 이다.
out.clear();
out = pageContext.pushBody();
위의 내용을 입력 처리하면 파일 다운로드 시 발행하는 에러의 처리가 가능하다.
'Jsp_Html' 카테고리의 다른 글
[Jsp] File Download 3 (0) | 2011.01.28 |
---|---|
[Jsp] File Download 2 (0) | 2011.01.28 |
[Jsp] page 지시자 (0) | 2010.12.30 |
[Jsp] 웹 서버와 WAS(Web Application Server)의 정의 (0) | 2010.12.13 |
[Jsp] 웹으로 접속한 사용자가 JSP 파일로 직접 접근할 수 없게 하기 (0) | 2010.12.07 |