File - Multipart / File

dazzi·2023년 12월 19일

Spring

목록 보기
4/5
post-thumbnail

Multipart/form-data

application/x-www-form-urlencoded

  • form data를 전송할 때 전송되는 형식
  • HTTP Body 에 전송하고자 하는 데이터가 들어감
    ex. key1=value1&key2=value2
  • 이 때, 동일한 타입문자 데이터를 전송하는 것은 O

key-value 문자데이터와 바이너리 형태인 파일 데이터가 같이 전송될 때,
body의 어떤 부분에서 파일이 전송되어야 한다고 알려줘야하는데 기존의 방식으로는 불가능

따라서, 전송되는 각 form data를 구분 필요 -> 한 단위 : part

동시에 여러 단위의 part를 나눌 수 있기 떄문에 multipart라고 함
Content-Type 을 multipart/form-data로 하기 위해선 <form>태그에 enctype을 지정

HttpServletRequest는 파일 업로드를 지원하지 않음

HttpServletRequest는 웹 클라이언트가 전달하는 Multipart 데이터를 처리하는 메서드를 지원하지 않는다.

HttpServletRequest는 http 프로토콜의 body부분을 읽는 input 스트림만 지원, 사용자는 이 input 스트림을 이용해 multipart를 나누어서 구현해야 하는데 보통 commons-fileupload 라이브러리를 사용한다.

<!-- 파일 업로드 -->
      <dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
         <version>1.3.2</version>
      </dependency>

      <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
         <version>2.5</version>
      </dependency>

0개의 댓글