12월15일 Day 41

여우·2022년 12월 15일
0

공부중

목록 보기
35/38

JSP 파일 업로드


  1. form에서 method를 지정하지 않으면 기본값은 get
  2. GET에서는 입력값을 쿼리스트링 형태로 전달한다(ex01-action.jsp?name=이지은&age=30)
  3. 파일은 문자열로 표현할 수 없으므로, GET이 아닌 POST를 사용해야 한다.
  4. POST로 전송하면, 쿼리스트링 대신 form-data를 별도의 영역으로 전송한다.
  5. 이때에도, 전달하는 주 내용은 글자이고, 데이터를 묶는 방식은 x-www-form-urlencoded 이다
  6. 파일을 전송하기 위해서는 데이터 묶음 방식을 multilpart/form-data() 로 변경하여 전송한다
  7. 다른 input 요소와 달리 type="file" 이면 value를 지정할수 없다(보안상의 문제로 절대로 지정할수 없다)

전송받은 파일을 처리하기


  1. JSP에서 파일을 전달받으면, 일반 parameter로 처리할 수 없다 (반환형이 String)
  2. JSP 내장객체 request에서는 파일을 처리하는 함수가 준비되어 있지 않다
  3. 파일 처리를 위한 별도의 라이브러리를 가져와서 처리한다 (com.oreilly.servlet)
  4. 내장객체 request로는 파일을 처리할 수 없어서, MultipartRequest 타입의 객체로 변환한다 생성자 매개변수에 기존 request를 전달해야 한다

이미지 파일 업로드

파일 업로드에 사용하는 ContentType
  • text/plain : 단순 텍스트 파일 (*.txt, *.text)
  • image/jpeg, image/gif, image/* : 이미지 파일
  • text/html : 텍스트 기반 html 파일 (*.html)
  • application/zip : zip 형식 압축파일 (*.zip)
  • video/mp4 : mp4 방식의 동영상 파일

action 페이지


useBean 형식으로 만든 fileUtil을 application에 저장시킨뒤 이걸로 자바 클래스에 작성해둔 getDTO 메서드를 호출합니다 (매개 변수로 request를 전달합니다).

FileUtile 자바 클래스


예외는 throws 처리 하고 난뒤 multipartRequest로 전달 받은 request를 각각의 조건에 맞게 파일을 업로드 합니다.

업로드된 파일의 정보를 DTO에 모두 넣어서 반환합니다.

Ex02DTO

profile
우당탕탕 지금은 개발중

0개의 댓글