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); } %> |