1. http://www.servlets.com/ 접속

2. 왼쪽 메뉴에서 3번째 - com.oreilly.servlet 클릭!!!

3. cos-26Dec2008.zip  맨밑에 다운!!

4. 압축을 푼다!

5. lib 폴더에 있는 cos.jar 를 이클립스의 WEB-INF의 lib에 넣어준다!!!

 

밑에 두개의 jsp 파일을 실행하면 오류가 난다. 그 이유는

 

fileUpload.jsp에서

 

//파일이 업로드되는 폴더를 지정한다.
 String saveFolder = "fileSave";

 

이렇게 되어 있기 때문에 fileSave 폴더를 만들어야 합니다.

 

어디에 만드냐구요?

 

 

the realpath is : 블라블라~~

 

fileSelect.jsp를 실행후 the realpath is : 블라블라~~

 

[블라블라~~] 경로에 만들어 줘야 합니다.

 

fileSelect.jsp

 <%@ page  contentType="text/html; charset=utf-8"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>파일 업로드 예제</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form name="fileForm" method="post" enctype="multipart/form-data"
action="fileUpload.jsp">

  <table width="450" border="1" align="center" bordercolordark="#FF9900" cellspacing="0" cellpadding="5">
    <tr bgcolor="#ffcc00">
    <td colspan="2" height="21">
      <div align="center"><b><font size="2">파일 업로드 예제</font></b></div>
    </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 작성자</td>
      <td> <b>         <input type="text" name="user" size=30>    </b> </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 제  목</td>
      <td>         <input type="text" name="title" size=30>      </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 파일명</td>
      <td>         <input type="file" name="uploadFile" size=30>      </td>
  </tr>
  <tr bgcolor="#FFff99">
    <td height="42" colspan="2">
      <div align="center">
        <input type="submit" name="Submit" value="파일 올리기">
      </div>
    </td>
  </tr>
</table>
</form>
</body>
</html>

 

 

fileUpload.jsp

 <%@page import="java.io.File"%>
<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page import="java.io.IOException"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%
 String realFolder = ""; //웹 어플리케이션의 절대 경로
 
 //파일이 업로드되는 폴더를 지정한다.
 String saveFolder = "fileSave";
 String encType = "utf-8"; //엔코딩타입
 int maxSize = 5 * 1024 * 1024; //최대 업로드 될 파일크기 5mb
 
 ServletContext context = getServletContext();
 
 //현재 jsp페이지의 웹 어플리케이션상의 절대 경로를 구한다.
 realFolder = context.getRealPath(saveFolder);
 out.println("the realpath is : " + realFolder + "<br>");
 
 try{
  MultipartRequest multi = null;
  //전송을 담당할 콤포넌트를 생성하고 파일을 전송한다.
  //전송할 파일명을 가지고 있는 객체, 서버상의 절대경로,
  //최대 업로드될 파일크기, 문자크도, 기본 보안 적용
  multi = new MultipartRequest(request, realFolder, maxSize, encType, new DefaultFileRenamePolicy());
  
  //form의 파라미터 목록을 가져온다.
  Enumeration params = multi.getParameterNames();
  
  //파라미터를 출력한다.
  while(params.hasMoreElements()){
   String name = (String)params.nextElement(); //전송되는 파라미터 이름
   String value = multi.getParameter(name); //전송되는 파라미터 값
   out.println(name + " = " + value + "<br>");
  }
  
  out.println("-----------------------------------------------<br>");
  
  //전송할 파일 정보를 가져와 출력한다.
  Enumeration files = multi.getFileNames();
  //파일 정보가 있다면
  while(files.hasMoreElements()){
   //input 태그의 속성이 file인 태그의 name 속성값 : 파라미터 이름
   String name = (String)files.nextElement();
  
   //서버에 저장된 파일 이름
   String filename = multi.getFilesystemName(name);
   
   //전송전 원래의 파일 이름
   String original = multi.getOriginalFileName(name);
   
   //전송된 파일의 내용 타입
   String type = multi.getContentType(name);
   
   //전송된 파일 속성이 file인 태그의 name 속성값을 이용해 파일 객체 생성
   File file = multi.getFile(name);
   
   out.println("파라미터 이름 : " + name + "<br>");
   out.println("실제 파일 이름 : " + original + "<br>");
   out.println("저장된 파일 이름 : " + filename + "<br>");
   out.println("파일 타입: " + type + "<br>");
   
   if(file != null){
    out.println("크기 : " + file.length());
    out.println("<br>");
   }
  }
 }catch(IOException ioe){
  System.out.println(ioe);
 }catch(Exception e){
  System.out.println(e);
 }
%>

 

+ Recent posts