최대 1 분 소요

 인프런 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술편을 학습하고 정리한 내용 입니다.

스프링은 MultipartFile이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다.

hello.upload.controller.SpringUploadController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@Slf4j
@Controller
@RequestMapping("/spring")  
public class SpringUploadController {  
  
    @Value("${file.dir}")  
    private String fileDir;  
  
    @GetMapping("/upload")  
    public String newFile() {  
        return "upload-form";  
    }  
  
    @PostMapping("/upload")  
    public String saveFile(@RequestParam("itemName") String itemName,  
                           @RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {  
  
        log.info("request={}", request);  
        log.info("itemName={}", itemName);  
        log.info("file={}", file);  
  
        if (!file.isEmpty()) {  
            String fullPath = fileDir + file.getOriginalFilename();  
            log.info("fullPath={}", fullPath);  
            file.transferTo(new File(fullPath));  
        }  
  
        return "upload-form";  
    }  
}
1
@RequestParam("file") MultipartFile file

업로드하는 HTML Form의 name에 맞추어 @RequestParam을 적용하면 된다.

추가로 @ModelAttribute에서도 MultipartFile을 동일하게 사용할 수 있다.

MultipartFile 주요 메서드
file.getOriginalFilename() : 업로드 파일 명
file.transferTo(..): 파일 저장

이제 실행 해보자.

다음 같이 정말 간단하게 업로드가 완료 되었다.

이제 다음 시간엔 예제로 파일 업로드 / 다운로드를 구현해 보자.

댓글남기기