Web/Servlet-JSP

Servlet-JSP MVC07 - 파일 삭제 하기

now0204 2023. 7. 24. 20:52

 

1. 뷰 설정 

<c:if test="${sessionScope.userId != null && sessionScope.userId == vo.id && vo.filename != null && vo.filename != ''}">
<a href="javascript:delFile('${vo.num}','${vo.filename}')"><span class="glyphicon glyphicon-remove"></span></a>
</c:if>

삭제 버튼에 a태그로 자바스크립트 메서드 연결시켜두었다.

function delFile(num,filename){
 location.href="<c:url value='/fileDel.do'/>?num="+num+"&filename="+filename;
   }

삭제를 위한 컨트롤러와 연결

 

2. fileDeleteController

 

public class FileDelController implements Controller{

	@Override
	public String requestHandler(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String ctx = request.getContextPath();
		
        //파일 이름 과 Dir 관련 설정 
		String filename = request.getParameter("filename");
		int num = Integer.parseInt(request.getParameter("num"));
		filename = URLEncoder.encode(filename, "UTF-8");
		filename = filename.replace("+", " ");
		
		//삭제할 파일 경로
		String UPLOAD_DIR ="file_REPO";
		String UPLOAD_REAL_PATH = request.getServletContext().getRealPath("")+File.separator+UPLOAD_DIR;
		File f = new File(UPLOAD_REAL_PATH+File.separator+filename);
		if(f.exists()) 
			f.delete(); //존재하면 삭제
		
		//테이블에서 파일이름 삭제 (null처리) - update
		MemberDAO dao = new MemberDAO();
		int cnt = dao.memberDeleteFile(num);
		
		
		return "redirect:"+ctx+"/memberContent.do?num"+num;
	}
	

}

 

3. DB처리 

public int memberDeleteFile(int number) {
	 int cnt =-1;
	 SqlSession session = sqlSessionFactory.openSession();
	 cnt = session.update("memberdelFile", number);
	 session.commit();
	 session.close();
	 
	 return cnt;
  }

삭제한 파일명 null처리하기 위한 DAO메서드이다.

 

 

출처: 나프2탄(박매일) -인프런

https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2

 

[NarP Series] MVC 프레임워크는 내 손에 [나프2탄] - 인프런 | 강의

본 과정은 WEB MVC 프레임워크가 무엇이고 WEB MVC 프레임워크가 어떻게 변형이 되면서 Spring WEB MVC 프레임워크로 넘어가는지 TPC(생각하고-표현하고-코딩하고) 기법을 통해 단계적으로 학습하고 이

www.inflearn.com