@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 String itemName, @RequestParam MultipartFile file) throws IOException {
if(!file.isEmpty()){
String fullPath = fileDir + file.getOriginalFilename();
file.transferTo(new File(fullPath));
}
return "upload-form";
}
}
정말 코드가 짧아졌다.
여기서 중요한 것은, @RequestParam MultipartFile 이걸로 파트 중 파일 부분만 여기에 담을 수 있다는 것이다.
그래서 만약 파일이 비어있지 않다면,
파일을 저장할 경로 + 파일의 이름으로 만들고
file.transferTo(new File(경로 + 이름))
저 파일을 저 경로로 옮기는 것이다.
MultipartFile은 또 size(), 등 다양한 파일과 관련된 메소드를 지원해 준다.
또, @ModelAttribute 에서도 MultipartFile을 동일하게 사용할 수 있다.
'스프링 > 4. 스프링 MVC-2' 카테고리의 다른 글
87. 파일 업로드, 다운로드 구현 (0) | 2023.09.25 |
---|---|
85. 서블릿으로 실제 서버에 파일 업로드 (0) | 2023.09.25 |
84. 파일 업로드 (0) | 2023.09.24 |
83. 스프링이 제공하는 기본 포맷터 (0) | 2023.09.24 |
82. 포맷터 웹 어플리케이션(스프링, 컨버전서비스)에 등록 (0) | 2023.09.24 |