create.do라고 하면 현재 media에 있기 때문에 media 안에서 create.do를 찾게 된다. (./create.do와 같다.)
../create.do는 현재 media에서 한 수준 위로 올라간 곳에서 create.do를 찾으라는 의미이다.
/create.do는 절대경로로 Root, 즉 localhost:9095 밑에서 create.do를 찾는다.
request로 받을 수도 있지만 DTO로도 받는 것이 가능하다.
MediaCont.java
아래 파일을 net.utility 패키지에 저장한다.
@RequestMapping(value = "/media/create.do", method = RequestMethod.POST)
public ModelAndView createProc(@ModelAttribute MediaDTO dto, HttpServletRequest req) {
//String title, MultipartFile posterMF, MultipartFile filenameMF
ModelAndView mav = new ModelAndView();
mav.setViewName("media/msgView");
////////////////////////////////////////////
//첨부된 파일 처리
//->실제 파일은 /storage폴더에 저장
//->저장된 파일 관련 정보는 media 테이블에 저장
///////////////////////////////////////////
//파일 저장 폴더의 실제 물리적인 경로 가져오기
String basePath = req.getRealPath("/storage");
//1)<input type='file' name='posterMF'>
MultipartFile posterMF = dto.getPosterMF(); //파일 가져오기
// /storage 폴더에 파일 저장하고, 리네임된 파일명 반환
String poster = UploadSaveManager.saveFileSpring30(posterMF, basePath);
dto.setPoster(poster); //리네임된 파일명을 dto 객체에 담기
//2)<input type='file' name='filenameMF'>
MultipartFile filenameMF = dto.getFilenameMF();
String filename = UploadSaveManager.saveFileSpring30(filenameMF, basePath);
dto.setFilename(filename);
dto.setFilesize(filenameMF.getSize());
////////////////////////////////////////////
int cnt = dao.create(dto);
if(cnt==0) {
String msg1 = "<p>음원 등록 실패</p>";
String img = "<img src='../images/crying.png'>";
String link1= "<input type='button' value='다시시도' onclick='javascript:history.back()'>";
String link2= "<input type='button' value='목록으로' onclick='location.href=\"list.do?mediagroupno=" + dto.getMediagroupno() + "\"'>";
mav.addObject("msg1", msg1);
mav.addObject("img", img);
mav.addObject("link1", link1);
mav.addObject("link2", link2);
} else {
String msg1 = "<p>음원 등록 성공</p>";
String img = "<img src='../images/smile.png'>";
String link2= "<input type='button' value='목록으로' onclick='location.href=\"list.do?mediagroupno=" + dto.getMediagroupno() + "\"'>";
mav.addObject("msg1", msg1);
mav.addObject("img", img);
mav.addObject("link2", link2);
}//if end
return mav;
}//createProc() end
MediaDTO.java
//기본생성자 아래----------------------------------------------
//첨부된 파일을 저장하기 위해(createForm.jsp 참조)
//1)스프링 파일 객체 멤버변수 선언
//<input type='file' name='posterMF'>
private MultipartFile posterMF;
//<input type='file' name='filenameMF'>
private MultipartFile filenameMF;
//2)getter와 setter함수 작성
public MultipartFile getPosterMF() {
return posterMF;
}
public void setPosterMF(MultipartFile posterMF) {
this.posterMF = posterMF;
}
public MultipartFile getFilenameMF() {
return filenameMF;
}
public void setFilenameMF(MultipartFile filenameMF) {
this.filenameMF = filenameMF;
}
//----------------------------------------------
'웹개발 교육 > Spring' 카테고리의 다른 글
[70일] spring (11) - mymelon media 삭제 (0) | 2022.11.04 |
---|---|
[70일] spring (10) - mymelon media 상세보기 (0) | 2022.11.04 |
[69일] spring (8) - mymelon media 목록 (0) | 2022.11.03 |
[69일] spring (7) - mymelon mediagroup 수정, 삭제 (0) | 2022.11.03 |
[68일] spring (6) - mymelon mediagroup 추가, 리스트 (0) | 2022.11.02 |