본문 바로가기

카테고리 없음

[Spring] 스프링으로 파일 업로드, 다운로드 구현하기 (2) - multipartFile 이용하기

김영한님 강의에서는 서블릿으로 파일을 전송하는 방법을 설명한 후에, 스프링으로 파일을 전송하는 방법에 대해 설명한다.

 

결국 스프링으로 파일을 전송하는 것을 사용하므로, 이에 대해서만 소개하겠다.

 

스프링은 메서드의 파라미터로 MultipartFile 타입을 지정하면, 파일을 받을 수 있도록 만들어두었다. 아래의 코드를 보면, 빠르게 이해할 수 있다.

@Value("${file.dir}")
private String fileDir; // 파일을 저장할 경로. 해당 경로에 폴더가 만들어져 있어야 한다.

@PostMapping("/upload")
public String saveFile(@RequestParam String itemName,
					// MultipartFile로 file을 전송받기
                     @RequestParam MultipartFile file, HttpServletRequest request) throws IOException {
    log.info("request={}", request);
    log.info("itemName={}", itemName);
    log.info("multipartFile={}", file);

    if (!file.isEmpty()) {
        String fullPath = fileDir + file.getOriginalFilename();
        log.info("파일 저장 fullPath={}", fullPath);
        file.transferTo(new File(fullPath)); // file.transferTo를 통해 간편하게 파일을 저장할 수 있다
    }
      return "upload-form";
 }

 

위의 코드는 log.info를 통해 출력하는 결과들이 많으므로, 이미지 파일이 크다면 버벅거릴 수 있다. 이땐, 로그를 지우고 실행하면 된다.