파게로그
[Spring MVC] POST 입력 - 파일 저장하기(물리경로 얻기) 본문
File saveFile = new File(realPath);
multipartFile.transferTo(saveFile);
home directory의 실제 경로를 그대로 써버리면 배포하고 나면 문제가 생기니까...
ServletContext 얻기
1. 메서드에서만 사용하는 경우에 주로 사용하는 방법
ctx를 얻기 위해서 메서드 파라미터에 HttpServletRequest req를 넣어두고
ServletContext ctx = req.getServletContext();
2. 멤버 변수로 두기
@Autowired //Spring은 IoC Container에 ServletContext를 담아둔다
private ServletContext ctx;
String webPath = "/static/upload";
String realPath = ctx.getRealPath(webPath);
File savePath = new File(realPath);
if (!savePath.exists())
savePath.mkdirs(); // mkdir()과 달리 mkdirs()는 중간에 없는 경로까지 다 만들어준다
// realPath += "\\" + fileName; 이렇게 하면 Windows 외에는 문제가 생김
realPath += File.separator + fileName; // 현재 시스템의 구분자
File saveFile = new File(realPath);
file.transferTo(saveFile);
파일도 마찬가지로..
<input type="file" name="files />
<input type="file" name="files />
이렇게 2개 이상 input이 같은 name을 가지고 있으면
MultipartFile[] files 로 배열로 받는다.
'콤퓨타 왕기초 > Spring' 카테고리의 다른 글
[Spring MVC] @GetMapping, @PostMapping (0) | 2021.05.03 |
---|---|
[Spring MVC] POST 입력 - 파일 업로드 (0) | 2021.05.03 |
[Spring MVC] POST 입력 및 한글 깨짐 (0) | 2021.05.03 |
[Spring MVC] Query String 파싱, @RequestParam (0) | 2021.05.03 |
[Spring MVC] 사용자 입력 (0) | 2021.05.03 |
Comments