'MultipartRequest'에 해당되는 글 1

  1. 2010.04.26 jsp] 파일 업로드 MultipartRequest (cos.jar)
카테고리 없음 | Posted by 낫기법필 2010. 4. 26. 17:45

jsp] 파일 업로드 MultipartRequest (cos.jar)

해당 자료 첨부
-




1. multipartRequest 를 이용하기 위해서는 cos.jar 파일이 필요하다.
이 파일은 www.servlets.com 사이트에 있다.

com.oreilly.servlet 메뉴에 들어가면  cos-26Dec2008.zip 파일을 다운로드 할 수 있다.
이 파일의 압축을 풀면 lib 폴더에 cos.jar 파일이 있다.

이것을 tomcat 의 lib 폴더에 넣으면 된다.

2. jsp 의 form 에 다음과 같은 내용을 넣는다.
   - <form name="form" method="post" enctype="multipart/form-data">

3. 파일을 받는 jsp(보내는 jsp가 아님) 에서 com.oreilly.servlet 패키지를 import.
   - <%@ page import = "com.oreilly.servlet.*" %>

4. 받는 부분 코딩
  - MultipartRequest multi =
        new MultipartRequest(request, "파일 저장 경로(String)", 파일크기(int), "인코딩");
 - MultipartRequest multi =
      new MultipartRequest(request, savePath, sizeLimit, "euc-kr", new
                                         DefaultFileRenamePolicy());
- DefaultFileRenamePolicy객체는 파일이 중복되면 이름을 바꿔 1 2 3 으로 파일이름을 변경
   한다.

5. MultipartRequest 를 사용 하게 되면 톰캣의 request 객체의 getParameter 메서드를 이용하여 값을 전달 받지 못한다. 따라서 MultipartRequest를 사용하게 되면 값을 전달 받기 위해서는 MultipartRequest 객체의  getParameter 메서드를 이용하여 값을 전달 받아야 한다.

   ex) String name = multi.getParameter("name");

 
6. 파일을 저장할 경로는 직접 써주기 보다는 톰캣의 내장 객체인 application 객체의
   getRealPath() 메서드를 사용하자.

    String savePath = application.getRealPath("파일을 저장할 폴더");

    ex) String savePath = application.getRealPath("/product");
          MultipartRequest multi = new MultipartRequest(request, savePath);

 7. 파일 이름을 받아올때는 MultipartRequest 의 getFileSystemName 메서드를 사용한다.
   
    String fileName = multi.getFilesystemName("파라미터 name");
    ex) String fileName = multi.getFilesystemName("fileName");

 

[original link] http://blog.naver.com/ghawk?Redirect=Log&logNo=60063747091