이미지와 문서를 서버로
게시판에 사진을 첨부하거나 프로필 이미지를 설정할 때 파일 업로드 기능이 필요합니다. 스프링 부트는 MultipartFile이라는 인터페이스를 제공하여 아주 간단하게 파일을 서버 하드디스크나 클라우드 저장소(AWS S3)에 업로드할 수 있게 도와줍니다.
| 클래스 / 설정 |
설명 |
MultipartFile |
스프링에서 업로드된 파일을 처리하는 핵심 인터페이스. transferTo() 메서드로 실제 디스크에 저장합니다. |
max-file-size |
application.yml에서 한 번에 업로드 가능한 최대 파일 크기를 제한합니다. (기본값 1MB) |
실전 코딩: 파일 업로드 API
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
if (file.isEmpty()) {
return "빈 파일입니다.";
}
// 파일을 저장할 디렉토리 경로
String fullPath = "/Users/workspace/upload/" + file.getOriginalFilename();
// 로컬 하드디스크에 파일 저장
file.transferTo(new File(fullPath));
return "업로드 성공: " + fullPath;
}
// Request
[Key: file, Value: profile_image.png (File)]
// Response (200 OK)
"업로드 성공: /Users/workspace/upload/profile_image.png"