반응형
지난번 파일 업로드 구현하기에 이어서 오늘은 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 |