본문 바로가기

개발자이야기/JAVA이야기

멀티파트 파일 업로드

반응형

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