MultipartFile

jiyoon·2023년 10월 15일
0

MultipartFile의 주요 메서드:

MultipartFile 인터페이스는 Spring Framework에서 파일 업로드를 다룰 때 사용하는 인터페이스이다.

  1. getOriginalFilename(): 클라이언트에서 업로드한 파일의 원래 이름을 리턴한다.
  2. getContentType(): 파일의 MIME 타입을 리턴한다.
  3. getSize(): 업로드한 파일의 크기를 리턴한다.
  4. getBytes(): 파일의 내용을 바이트 배열로 리턴한다.
  5. getInputStream(): 파일의 내용을 읽기 위한 InputStream을 리턴한다.
  6. transferTo(File dest): 파일의 내용을 목적지 파일로 저장한다.

원리

  1. HTTP 요청 파싱 : 클라이언트에서 파일을 업로드하면, HTTP 요청의 본문에 파일의 데이터가 포함된다. 이 데이터는 'multipart/form-data' 인코딩 타입을 사용하여 전송된다.

  2. MultipartFile 객체 생성 : Spring은 이러한 HTTP 요청을 파싱하여 'MultipartFile' 객체를 생성하는데, 이 객체를 통해 개발자는 업로드된 파일에 접근할 수 있다.

  3. 파일 처리 : 개발자는 'MultipartFile' 객체의 메서드를 사용하여 파일의 메타데이터에 접근하거나, 파일을 저장, 변환 등의 작업을 수행할 수도 있다.


보안 및 검증

  • 'MultipartFile'을 사용할 때는 보안과 파일 검증도 고려해야 한다. 업로된 파일의 크기, 타입, 내용 등을 적절히 검증하고, 사용자가 업로드한 파일을 직접 실행하지 않도록 주의해야 한다.

MultipartFile 과 메모리 저장

  • MultipartFile 객체를 통해서 업로드된 파일에 접근할 수 있지만 MultipartFile 객체 자체가 파일을 메모리에 저장하는 것은 아니다.

  • 대신, 파일 데이터를 메모리에 임시로 저장하거나, 또는 디스크에 임시 파일로 저장할 수 있다.


MultipartFile / form-data 와 다른 인코딩 타입

  • Spring Boot에서 파일 업로드를 다룰 때 주로 'multipart/form-data' 인코딩 타입을 사용하지만, 다른 방법도 가능하다.

  • 바이너리 파일을 직접 전송하는 방법, Base64 인코딩을 사용하는 방법 등이 있다.

  • 그러나, 일반적으로 파일 업로드에는 'multipart-form-data'가 사용된다.

profile
한걸음 나아가는 개발자

0개의 댓글