jsp 자료실 소스: 수정하기(첨부파일수정)

jsp 자료실 소스: 수정하기(첨부파일수정)

1.자료실 글 수정하기 관련sql(mapper.xml)

 <update id=”databoardUpdate” parameterType=”DataBoard”>
  UPDATE databoard SET name=#{name},subject=#{subject},content=#{content},
  regdate=SYSDATE,filename=#{filename},filesize=#{filesize}
  WHERE no=#{no}
 </update>

2. 자료실 글 수정하기(모델)(스프링에선 컨트롤러, 스트러츠에선 액션)

@RequestMapping(“databoard_update_ok.do”)
 public String databoard_update_ok(Model model) throws Exception{
  
  //비번 검색
  model.getRequest().setCharacterEncoding(“EUC-KR”);
  String path=”c:\\download”;
  File dir=new File(path);
  if(!dir.exists())
   dir.mkdir();
  
  String enctype=”EUC-KR”;//한글 파일명 저장
  int size=1024*1024*500;//최대 500메가
  MultipartRequest mr=new MultipartRequest(model.getRequest(),path,size,enctype,new DefaultFileRenamePolicy());
  String name=mr.getParameter(“name”);
  String subject=mr.getParameter(“subject”);
  String content=mr.getParameter(“content”);
  String pwd=mr.getParameter(“pwd”);
  String page=mr.getParameter(“page”);
  String no=mr.getParameter(“no”);
  
  String filename=mr.getFilesystemName(“upload”);
  
  DataBoardVO vo=new DataBoardVO();
  
  vo.setNo(Integer.parseInt(no));
  vo.setName(name);
  vo.setSubject(subject);
  vo.setContent(content);
  vo.setPwd(pwd);
  String db_pwd=DataBoardDAO.databoardGetPwd(Integer.parseInt(no));
  String res=””;
  
  if(db_pwd.equals(pwd)){
   res=”YES”;
   DataBoardVO dbvo=DataBoardDAO.databoardUpdateData(Integer.parseInt(no));
   if(filename==null){
    if(dbvo.getFilesize()==0){
     //파일이 없는 글이면
     vo.setFilename(“”);
     vo.setFilesize(0);
    }
    else{
     //파일이 그대로 있는 글이면 파일 유지
     vo.setFilename(dbvo.getFilename());
     vo.setFilesize(dbvo.getFilesize());
    }
   }
   else{
    //업로드를 했었으나, 새로운 파일을 올렸을 경우.
    //1)새로운 파일을 올림.
    vo.setFilename(filename);
    File file=new File(path+”\\”+filename);
    vo.setFilesize((int)file.length());
    
    //2)기존 파일 삭제
    File delFile=new File(path+”\\”+dbvo.getFilename());//기존 파일을 지운다.
    delFile.delete();//파일삭제
   }
   
   //UPDATE
   DataBoardDAO.databoardUpdate(vo);
  }
  else{
   res=”NO”;
  }
  
  model.addAttribute(“res”, res);
  model.addAttribute(“page”, page);
  model.addAttribute(“no”, no);
  return “databoard/update_ok”;
 }