2013년 7월 25일 목요일

(130725) 24일차 jsp 파일 다운로드 예제 (jsp용 파일 목록보기, jsp 파일 다운로드)

 - jsp용 파일 목록보기 소스
<%@page import="com.oreilly.servlet.multipart.FilePart"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page contentType="text/html; charset=euc-kr"%>
<%
  // 프로젝트 내에 저장될 폴더를 지정
 String realFolder="";
  // 본인이 만든 폴더명
 String saveFolder="File";
 
 // 서블릿 클래스의 정보를 얻어오는 객체 선언
 ServletContext context =getServletContext();
 // 프로젝트 내에 파일이 저장될곳의 위치를 얻어옴
 realFolder = context.getRealPath(saveFolder);
 
   java.io.File f = new java.io.File(realFolder);
   if(f.exists()){
       String [] filelist = f.list();
       for(int i=0;i<filelist.length;i++){
           java.io.File f2 = new java.io.File(realFolder + "/" + filelist[i]);
         
           
           out.println("<a href='FileDown.jsp?file="+f2.getName()+"'>"+f2.getName()+"</a><BR>");
       }
   }
%>



 - jsp 파일 다운로드 소스
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.io.FileInputStream"%>
<%@ page import="java.io.BufferedInputStream"%>
<%@ page import="java.io.File"%>
<%@ page import="java.io.IOException"%>
<%
 // 프로젝트 내에 저장될 폴더를 지정
 String realFolder = "";
 // 본인이 만든 폴더명
 String saveFolder = "File";
 ServletContext context = getServletContext();
 // 프로젝트 내에 파일이 저장될곳의 위치를 얻어옴
 realFolder = context.getRealPath(saveFolder);
 String parent = "e2";
 String filename = request.getParameter("file");
 String filepath = realFolder + "/";
 BufferedInputStream buf = null;
 ServletOutputStream myOut = null;
 try {
  out.clear();
  out =pageContext.pushBody();
  myOut = response.getOutputStream();
  File myfile = new File(filepath + filename);
  response.setContentType("text/plain");
  response.addHeader("Content-Disposition",
    "attachment; filename=" + filename);
  response.setContentLength((int) myfile.length());
  FileInputStream input = new FileInputStream(myfile);
  buf = new BufferedInputStream(input);
  int readBytes = 0;
  while ((readBytes = buf.read()) != -1){
   myOut.write(readBytes);
  }
  myOut.close();
  buf.close();
 } catch (Exception ioe) {
  //ioe.printStackTrace();
 }
%>