반응형
지난번 파일 업로드 구현하기에 이어서 오늘은 Jsp에서 파일 다운로드 기능을 구현해 보자.
파일 다운로드는 특별한 라이브러리 없이 사용이 가능하다.
1. 파일 다운로드(filedown.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.io.*"%>
<%@ page import="java.text.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%
request.setCharacterEncoding("UTF-8");
// 파일 업로드된 경로
String root = request.getSession().getServletContext().getRealPath("/");
String savePath = root + "upload";
// 서버에 실제 저장된 파일명
String filename = "20140819151221.zip" ;
// 실제 내보낼 파일명
String orgfilename = "테스트.zip" ;
InputStream in = null;
OutputStream os = null;
File file = null;
boolean skip = false;
String client = "";
try{
// 파일을 읽어 스트림에 담기
try{
file = new File(savePath, filename);
in = new FileInputStream(file);
}catch(FileNotFoundException fe){
skip = true;
}
client = request.getHeader("User-Agent");
// 파일 다운로드 헤더 지정
response.reset() ;
response.setContentType("application/octet-stream");
response.setHeader("Content-Description", "JSP Generated Data");
if(!skip){
// IE
if(client.indexOf("MSIE") != -1){
response.setHeader ("Content-Disposition", "attachment; filename="+new String(orgfilename.getBytes("KSC5601"),"ISO8859_1"));
}else{
// 한글 파일명 처리
orgfilename = new String(orgfilename.getBytes("utf-8"),"iso-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgfilename + "\"");
response.setHeader("Content-Type", "application/octet-stream; charset=utf-8");
}
response.setHeader ("Content-Length", ""+file.length() );
os = response.getOutputStream();
byte b[] = new byte[(int)file.length()];
int leng = 0;
while( (leng = in.read(b)) > 0 ){
os.write(b,0,leng);
}
}else{
response.setContentType("text/html;charset=UTF-8");
out.println("<script language='javascript'>alert('파일을 찾을 수 없습니다');history.back();</script>");
}
in.close();
os.close();
}catch(Exception e){
e.printStackTrace();
}
%>
response.setHeader("Content-Disposition", "attachment; filename=파일명.doc") 에서 filename을 지정하면 해당 파일명대로 사용자에게 보여진다.
2. 파일 다운로드 링크걸기
파일 다운받기
'Language > Java / JSP' 카테고리의 다른 글
| [Java] 엑셀 파일 읽기 (0) | 2014.08.23 |
|---|---|
| [JAVA] File renameTo() 에러에 관하여 (0) | 2014.08.22 |
| [JSP] cos.jar를 이용한 파일 업로드 구현하기 (16) | 2014.08.20 |
| [JSP] 이미지 사이즈(width, height) 알아내기 (0) | 2014.08.07 |
| [Java] SMTP 메일전송 한글깨짐 해결 (0) | 2014.08.07 |