개인정보수정 - wjdkdtn7233/SemiProject_UP GitHub Wiki
- 경로
- /src/up/mypage/controller/MyPageController.java
* java code
// 개인정보 수정 전 본인이 맞는지 비밀번호로 일치여부 확인
public ModelAndView pwPwdCheck(HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
// Member m = (Member) request.getSession().getAttribute("loginInfo");
mav.setView("mypage/pwPwdCheck");
String uploadPath = request.getServletContext().getRealPath("resources\\upload");
System.out.println(uploadPath);
return mav;
}
//개인정보 수정 ( 프로필 사진, 닉네임, 이름, 등등 .. )
public ModelAndView infoUpdate(HttpServletRequest request) throws IOException {
ModelAndView mav = new ModelAndView();
Member m = (Member) request.getSession().getAttribute("loginInfo");
int res = 0;
String uploadPath = request.getServletContext().getRealPath("/") + "resources/upload";
int size = 1024 * 1024 * 10;
String fileName = "";
String orgfileName = "";
String title = "";
String nick = "";
String basicPicture = "";
// 파일의 경로 + 파일명
String filePath = uploadPath + "/" + m.getOriginFile();
String filePath2 = uploadPath+ "/" + m.getRenameFile();
System.out.println(filePath);
System.out.println(filePath2);
File deleteFile = new File(filePath);
File deleteFile2 = new File(filePath2);
// 파일이 존재하는지 체크 존재할경우 true, 존재하지않을경우 false
MultipartRequest multi = new MultipartRequest( // MultipartRequest 인스턴스 생성(cos.jar의 라이브러리)
request, uploadPath, // 파일을 저장할 디렉토리 지정
size, // 첨부파일 최대 용량 설정(bite) / 10KB / 용량 초과 시 예외 발생
"utf-8", // 인코딩 방식 지정
new DefaultFileRenamePolicy()); // 중복 파일 처리(동일한 파일명이 업로드되면 뒤에 숫자 등을 붙여 중복 회피)
basicPicture = multi.getParameter("basicPicture");
fileName = multi.getFilesystemName("profile"); // name=file1의 업로드된 시스템 파일명을 구함(중복된 파일이 있으면, 중복 처리 후 파일 이름)
orgfileName = multi.getOriginalFileName("profile"); // name=file1의 업로드된 원본파일 이름을 구함(중복 처리 전 이름)
title = multi.getParameter("title");
nick = multi.getParameter("nick");
System.out.println(fileName + "잘 나오냐" + orgfileName);
// 기본이미지라면
if (basicPicture.equals("unnamed.jpg")) {
ms.updateFileName(basicPicture, basicPicture, m.getUserId());
// 로그인 세션에 유저의 현재 프로필 사진네임을 다시 셋팅해준다.
if (!m.getOriginFile().equals("unnamed.jpg")) {
if (deleteFile2.exists()) {
// 파일을 삭제합니다.
deleteFile2.delete();
System.out.println("파일을 삭제하였습니다.");
}else {
System.out.println("파일이 존재하지 않습니다.");
}
}
m.setOriginFile(basicPicture);
m.setRenameFile(basicPicture);
// 기본이미지가 아니고 받아온 파일의 이름이 null이 아니라면
} else if (orgfileName != null) {
ms.updateFileName(orgfileName, fileName, m.getUserId());
// 로그인 세션에 유저의 현재 프로필 사진경로를 다시 셋팅해준다.
if (!m.getOriginFile().equals("unnamed.jpg")) {
if (deleteFile2.exists()) {
// 파일을 삭제합니다.
deleteFile2.delete();
System.out.println("파일을 삭제하였습니다.");
}else {
System.out.println("파일이 존재하지 않습니다.");
}
}
m.setOriginFile(orgfileName);
m.setRenameFile(fileName);
}
res = ms.updateInfomation(title, nick, m);
if (res >= 1) {
// 유저가 바꾼 닉네임, 파일, 이름이 담긴 로그인 세션을 다시 갱신한다.
m.setUserNickName(nick);
// 대표타이틀도 바꿨으니 다시 초기화
// 대표 타이틀 url 도 초기화
TitleUrlController uc = new TitleUrlController();
uc.getTitleURL(request);
m.setUserTitleCode(getTitle(request,m).getTCode());
request.getSession().setAttribute("loginInfo", m);
mav.setView("common/result");
mav.addObject("url", "/up/mypage/mypage.do");
mav.addObject("alertMsg", "개인정보 수정에 성공하였습니다.");
} else {
mav.addObject("alertMsg", "개인정보 수정에 실패하였습니다.");
mav.addObject("back", "back");
mav.setView("common/result");
}
return mav;
}
// 비밀번호 변경
public ModelAndView pwdCheck(HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
Member m = (Member) request.getSession().getAttribute("loginInfo");
String newPwd = request.getParameter("newPwd");
String id = m.getUserId();
int res = ms.updatePassword(newPwd, id);
if (res >= 1) {
m.setUserPwd(newPwd);
request.getSession().setAttribute("loginInfo", m);
mav.setView("common/result");
mav.addObject("url", "/up/mypage/mypage.do");
mav.addObject("alertMsg", "비밀번호 수정에 성공하였습니다.");
} else {
mav.addObject("alertMsg", "비밀번호 수정에 실패하였습니다.");
mav.addObject("back", "back");
mav.setView("common/result");
}
return mav;
}