[Servlet&JSP] Chap 12. file업로드 태그, MultipartRequest

김승현·2021년 12월 14일
0

준비 사항 : cos.jar 파일 WebContent/WEB-INF/lib 폴더에 복사
COS 라이브러리 : http://www.servlets.com/cos/

기본적인 file 업로드 태그

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
</form>
  • 파일의 데이터는 일반적인 String형태가 아닌 Binary 형태이기 때문에 enctype(인코딩 타입)을 multipart/form-data 형태로 바꾸어 주어야 함
  • multipart/form-data:
    • 일반적으로 파일의 경우 네트워크 상에서 한번에 크게 보낼 수 없기 때문에 나누어져 보내게 됨
    • multipart라고 명시 하게 됨으로써 파일형태로 조각내서 보낸다는것을 의미함



MultipartRequest 클래스

  • cos.jar 라이브러리를 통하여 Servlet에서 MultipartRequest 클래스를 제공

  • 생성자

    MultipartRequest multi = new MultipartRequest(request, saveDirectiory, maxPostSize, encoding, policy);

  • request : MultipartRequest와 연결할 request 객체

  • saveDirectory : 서버 측에 저장될 경로

  • maxPostSize : 최대 파일 크기

  • encoding : 파일의 인코딩 방식(파일 이름이 한글일 경우 매개 변수 값을 utf-8로 줌)

  • policy : 파일 중복 처리를 위한 매개 변수
    policy는 중복 처리를 해주는 매개변수로서 'b.bmp' 파일을 업로드 하였는데 다시 같은 파일을 업로드 할 경우 'b1.bmp' 등으로 자동으로 파일 중복 처리를 해줌
    매개 변수 값으로는 'new DefaultFileRenamePolicy()'를 사용 함

유용한 메소드

getparameterNames() : 폼에서 전송된 파라미터의 이름을 Enumeration 타입으로 리턴
getParameterValues() : 폼에서 전송된 파라미터들을 배열로 받아옴
getParameter() : 객체에 있는 해당 파라미터의 값을 가져옴
getFileNames() : 파일을 여러 개 업로드 할 경우 그 값들을 Enumeration 타입으로 리턴
getFilesystemName() : 서버에 실제로 업로드 된 파일의 이름을 의미
getOriginalFilename() : 클라이언트가 업로드한 파일의 원본 이름을 의미
getContentType() : 업로드 파일의 컨텐트 타입을 얻을 때 사용
getFile() : 서버에 업로드 된 파일의 정보를 객체로 얻어낼 때 사용

profile
개발자로 매일 한 걸음

0개의 댓글