본문 바로가기
Spring

Multipart

by Mecodata 2023. 12. 20.

Multipart

정의

- HTTP Request Header Content-Type의 한 종류로 Client가 POST 요청을 보낼 때 HTTP Request의 하나의 Body를 여러 부분으로 나누어 여러 종류의 데이터를 동시에 전송하는 방식

- 주로 파일 업로드와 관련된 데이터 전송에 사용

- 멀티파트 요청은 Header Content-Type에 multipart/form-data 값을 가지며 여러 개의 파트로 구성됨

- 각 파트는 Header와 Body로 구성되며 Header에는 메타 데이터, Body에는 데이터가 포함 

 

MultipartFile

정의

- org.springframework.web.multipart.MultipartFile

- Client에서 서버로 전송된 파일 데이터를 다룰 수 있도록 도와주는 Spring 인터페이스

주요 메소드

- getBytes() = 파일 데이터를 byte[]로 반환

- getInputStream() = 파일 데이터를 읽을 수 있는 InputStream 반환

- getContentType() = 파일의 컨텐츠 타입 반환

- getName() = 폼 필드의 이름 반환 (파일 필드일 경우 파일명 반환)

- getSize() = 파일 크기 조회 

- getOriginalFilename() = 파일의 실제 이름 조회

- isEmpty() = 파일이 비어있는지 여부 반환

- transferTo(A) = 참조한 파일을 지정한 파일 A에 복사 (파일의 쓰기 권한이 없으면 에러 발생)  

 

MultipartHttpServletRequest

정의

- org.springframework.web.multipart.MultipartHttpServletRequest

- 멀티파트 요청을 전송받아 해당 요청의 파라미터 및 파일 업로드 등을 처리하기 위한 방법을 제공하는 Spring 인터페이스

- HttpServletRequest 및 MultipartRequest를 확장한 인터페이스

주요 메소드

- getFile(filename) = 해당 파일명과 일치하는 파일을 MultipartFile 객체로 반환 

- getFileNames() = 멀티파트 요청으로 전송 받은 파일들의 파일명을 Iterator<String> 객체로 반환

- getFiles(filename) =  해당 파일명과 일치하는 파일을 List<MultipartFile> 객체로 반환 

- getFileMap() = 멀티파트 요청으로 전송 받은 파일들을 Map<String, MultipartFile> 객체로 반환

- getMultiFileMap() = 멀티파트 요청으로 전송 받은 파일들을 MultiValueMap<String, MultipartFile> 객체로 반환

 MultiValueMap = 하나의 키에 대한 여러 개의 값을 가질 수 있는 Map (Spring에서 지원)

 

- getContentType() = 멀티파트 요청의 컨텐츠 타입 조회

- getHeader(key) = 헤더의 특정 속성에 대한 값 조회

- getBytes() = 파일 내용 조회

 

'Spring' 카테고리의 다른 글

The import org.springframework cannot be resolved 에러 (Gradle)  (0) 2024.02.12
Spring https 설정  (0) 2023.12.22
log4jdbc  (1) 2023.09.14
logback-spring.xml 로그 파일 level별 설정 문제  (0) 2023.09.13
Logback  (0) 2023.09.12

댓글