728x90
스프링이 지원하는 파일 업로드
@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, 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));
}
return "upload-form";
}
}
- @RequestParam MultipartFile file
- 업로드하는 HTML Form의 name에 맞추어 @RequestParam을 적용하면 된다.
- 추가로 @ModelAttribute 에서도 MultipartFile을 동일하게 사용할 수 있다
- file.getOriginalFilename() : 업로드 파일 명
- file.transferTo(...) : 파일 저장
728x90
'스프링 MVC 2편(백엔드 웹 개발 활용 기술)' 카테고리의 다른 글
| Ch11. 파일 업로드 - 예제로 구현하는 파일 업로드, 다운로드 (0) | 2022.03.23 |
|---|---|
| Ch11. 파일 업로드 - 서블릿과 파일 업로드 (0) | 2022.03.23 |
| Ch11. 파일 업로드 - 파일 업로드 소개 (0) | 2022.03.23 |
| Ch10. 스프링 타입 컨버터 소개 - 포맷터를 지원하는 컨버전 서비스 (0) | 2022.03.22 |
| Ch10. 스프링 타입 컨버터 소개 - 포맷터(Formatter) (0) | 2022.03.22 |