-
Servlet-JSP MVC07 파일 수정하기언어/JAVA 2023. 7. 24. 21:23
- 파일 수정하기
- 파일 수정하기도 회원 가입시 첨부파일을 지정하는 것과 마찬가지로
- 파일 업로드하고 정보 수정 vs 파일 업로드 없이 정보 수정
- 파일 업로드하고 회원 정보 수정시
1. ajax로 먼저 파일을 업로드 시키고, 업로드 된 filename 콜백함수로 받아서
2. hidden타입 id= filename에 value를 return받은 filename으로 바꿔 둔 뒤에
3. 수정하기 누르면, 같이 넘어가도록 한다.
1. 뷰 쪽 수정
<input type="hidden" name="filename" value="" id="filename"/>
function update(){ if($("#file").val() != ''){ var formData = new FormData(); formData.append("file",$("input[name=file]")[0].files[0]); $.ajax({ url : "<c:url value='/fileAdd.do'/>", type : "post", data : formData, processData : false, contentType : false, success : function(data){ $("#filename").val(data); document.form1.action="<c:url value='/memberUpdate.do'/>?mode=fUpdate"; document.form1.submit(); }, error : function(){alert("error");} }); }else{ document.form1.action="<c:url value='/memberUpdate.do'/>?mode=Update"; document.form1.submit(); } }
2. Update Controller 수정
public class MemberUpdateController implements Controller{ @Override public String requestHandler(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ctx=request.getContextPath(); int num=Integer.parseInt(request.getParameter("num")); int age=Integer.parseInt(request.getParameter("age")); String email=request.getParameter("email"); String phone=request.getParameter("phone"); MemberVO vo=new MemberVO(); if(request.getParameter("mode").equals("fUpdate")) { String filename = request.getParameter("filename"); vo.setFilename(filename); } vo.setNum(num); vo.setAge(age); vo.setEmail(email); vo.setPhone(phone); MemberDAO dao=new MemberDAO(); int cnt = -1; if(request.getParameter("mode").equals("fUpdate")) { cnt=dao.memberUpdateFile(vo); }else { cnt=dao.memberUpdate(vo); } String nextPage=null; if(cnt>0) { // 수정성공 nextPage="redirect:"+ctx+"/memberList.do"; }else { // 가입실패-> 예외객체를 만들어서 WAS에게 던지자. throw new ServletException("not update"); } return nextPage; } }
* 넘어온 mode에 따라 VO셋팅과 update쿼리를 다르게 발생시킨다.
3. DAO메서드 추가
public int memberUpdateFile(MemberVO vo) { SqlSession session = sqlSessionFactory.openSession(); int cnt = session.update("memberUpdateFile",vo); session.commit(); session.close(); return 0; }
참고자료: 나프2탄(박매일) -인프런
https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2
'언어 > JAVA' 카테고리의 다른 글
자바 네트워크 네트워크 입출력 (1) - TCP (0) 2023.08.22 Java - 일급컬렉션 (0) 2023.07.25 Java - File클래스 (0) 2023.07.24 Java - io 직렬화(Serialization) (0) 2023.07.24 nextStep - 자동차 경주 일급 컬렉션 만들기 (0) 2023.07.23