jsp cos.jar multipart file Upload

cos.jar => 파일 업로드와 enctype="multipart/form-data"로 넘겨져 오는 파라미터에 대한 이름과 값을 얻어낼 수 있다.
 

2. 1) testController에서 MultipartRequest를 사용하기 위해서 com.oreilly.servlet 패키지를 import 해야한다.
ex.import com.oreilly.servlet.*;

 

2) MultipartRequest는 객체를 생성하자마자 파일을 업로드시킨다.
ex. MultipartRequest multi = new MultipartRequest(request, "파일저장경로(String)", 파일크기(int), "인코딩");


3) MultipartRequest를 사용하게되면 톰캣의 request 객체의 getParameter 메소드를 이용하여 값을 전달받지 못한다.
따라서 MultipartRequest를 사용하게 되면 값을 전달받기 위해서는 MultipartRequest 객체의 getParameter 메소드를 이용하여 값을 전달받아야 한다.
ex. String user = multi.getParameter("user");


4) 파일을 저장할 경로는 톰캣의 내장객체인 application.getRealPath() 메소드를 사용한다.
ex. String fileSave = application.getRealPath("fileSave");
MultipartRequest multi = new MultipartRequest(request, fileSave);


5) 전송한 파일 정보를 가져온다.
ex. Enumeration file = multi.getFileNames();
while(files.hasMoreElements()){ // 파일 정보가 있다면
    String name = (String)files.nextElement(); // input 태그의 속성이 file인 태그의 name 속성값 : 파라미터 이름
    String filename = multi.getFilesystemName(name); // 서버에 저장된 파일 이름
    String original = multi.getOriginalFileName(name); // 전송 전 원래의 파일 이름
    String type = multi.getContentType(name); // 전송된 파일의 내용 타입
}


※ 일반적인 form 데이터는 HttpServletRequest 객체를 이용해서 쉽게 가져올 수 있다.

 (ex. request.getParameter(name)) 하지만
 nctype="multipart/form-data" 속성으로 넘어온 form에 있는 데이터(파라미터 이름과 값들)를 읽기  위해서는 넘겨져온 form 데이터에 대한 특별한 처리가 요구된다. 그래서 이런 특별한 처리를 담당할 MultipartRequest 클래스를 통해서 form 데이터를 받아오고, form 데이터에 있는 파일을 업로드하는 것이다.

 

--- 퍼온글--


댓글

이 블로그의 인기 게시물

jquery css

Struts2의 작동 원리

JSP/Servlet 한글 깨짐 처리 ?