www.servlets.com 사이트 에 접속한다.
스크롤을 아래로 약간 내려 보면 DownLoad 부분이 나오는데 거기에서
Cos 로 시작되는 파일을 다운 받는다.
다운받은 압축 파일의 압축을 풀고
cos-05Nov2002/lib 안에 cos.jar 아카이브 파일을
자바 폴더와 톰켓 폴더에 각각 넣어주도록 한다.
C:/Java/jdk1.6.0_06/jre/lib/ext
C:/Java/jre1.6.0_06/lib/ext
C:/Tomcat5.5/common/lib
jsp 파일을 코딩시 폼양식에 enctype="multipart/form-data" 를 넣어주도록 한다.
ex ) <form name="form" method="post" enctype="multipart/form-data">
tip! enctype을 JavaScript 에서 제어하고 싶을시에는 아래와 같이 코딩해준다.
ex) 폼이름.encoding = "multipart/form-data";
form1.encoding="multipart/form-data";
※ 주의 : enctype 을 지정해 주지 않으면 파일 업로드가 되지 않으며 톰캣의 내장객체 request 객체를 사용할 수 없다.
정확히는 enctype 을 multipart/form-data 로 설정해 주었다면 톰갯의 내장객체 request 객체를 사용할 수 없다.
1) MultipartRequest 를 사용하기 위해서는 com.oreilly.servlet 패키지를 import 해야 한다.
ex) <%@ page import = "com.oreilly.servlet.*" %>
2) MultipartRequest 는 객체를 생성하자 마자 파일을 업로드 시킨다.
ex) MultipartRequest multi = new MultipartRequest(request, "파일 저장 경로(String)", 파일크기(int), "인코딩");
// 이순간 업로드가 발생된다.
3) MultipartRequest 를 사용 하게 되면 톰캣의 request 객체의 getParameter 메서드를 이용하여
값을 전달 받지 못한다. 따라서 MultipartRequest를 사용하게 되면 값을 전달 받기 위해서는 MultipartRequest 객체의
getParameter 메서드를 이용하여 값을 전달 받아야 한다.
ex) String name = multi.getParameter("name");
4) 파일을 저장할 경로는 직접 써주기 보다는 톰캣의 내장 객체인 application 객체의 getRealPath() 메서드를 사용하자.
String savePath = application.getRealPath("파일을 저장할 폴더");
ex) String savePath = application.getRealPath("/product");
MultipartRequest multi = new MultipartRequest(request, savePath);
5) 파일 이름을 받아올때는 MultipartRequest 의 getFileSystemName 메서드를 사용한다.
String fileName = multi.getFilesystemName("파라미터 name");
ex) String fileName = multi.getFilesystemName("fileName");
'개발자이야기 > JAVA이야기' 카테고리의 다른 글
java 디자인 패턴 공부 (0) | 2013.04.10 |
---|---|
base64 암복호화 java (0) | 2010.11.30 |
Thread (0) | 2009.12.09 |
java simple deamon (0) | 2009.09.01 |
문자열 Object 길이는? (0) | 2009.03.27 |