getOriginalFilename()
: 클라이언트에서 업로드한 파일의 원래 이름을 리턴한다.getContentType()
: 파일의 MIME 타입을 리턴한다.getSize()
: 업로드한 파일의 크기를 리턴한다.getBytes()
: 파일의 내용을 바이트 배열로 리턴한다.getInputStream()
: 파일의 내용을 읽기 위한 InputStream
을 리턴한다.transferTo(File dest)
: 파일의 내용을 목적지 파일로 저장한다.HTTP 요청 파싱 : 클라이언트에서 파일을 업로드하면, HTTP 요청의 본문에 파일의 데이터가 포함된다. 이 데이터는 'multipart/form-data' 인코딩 타입을 사용하여 전송된다.
MultipartFile 객체 생성 : Spring은 이러한 HTTP 요청을 파싱하여 'MultipartFile' 객체를 생성하는데, 이 객체를 통해 개발자는 업로드된 파일에 접근할 수 있다.
파일 처리 : 개발자는 'MultipartFile' 객체의 메서드를 사용하여 파일의 메타데이터에 접근하거나, 파일을 저장, 변환 등의 작업을 수행할 수도 있다.
MultipartFile 객체를 통해서 업로드된 파일에 접근할 수 있지만 MultipartFile 객체 자체가 파일을 메모리에 저장하는 것은 아니다.
대신, 파일 데이터를 메모리에 임시로 저장하거나, 또는 디스크에 임시 파일로 저장할 수 있다.
Spring Boot에서 파일 업로드를 다룰 때 주로 'multipart/form-data' 인코딩 타입을 사용하지만, 다른 방법도 가능하다.
바이너리 파일을 직접 전송하는 방법, Base64 인코딩을 사용하는 방법 등이 있다.
그러나, 일반적으로 파일 업로드에는 'multipart-form-data'가 사용된다.