❗ 저장된 파일도 삭제해야함!!
- shop_main2.java 에 추가 - @GetMapping("/gallery_delete.do") (Contoller)
public static int m_gidx; //메모리를 사용할거다
@GetMapping("/gallery_delete.do")
public void gallery_delete(
@RequestParam(required = true) Integer gidx,
HttpServletResponse res,
HttpServletRequest req
) throws Exception{
res.setContentType("text/html;charset=utf-8");
this.pw =res.getWriter();
try {
this.m_gidx = gidx;
//module에서 삭제할 실제 웹 디렉토리를 가져와야 해서 인자값으로 req 넘겨줌
String callback = new gallery_select().del_gal(dbInfo,req);
if(callback == "Y") {
this.pw.print("<script>"
+ "alert('삭제가 완료되었습니다.');"
+ "location.href='./gallery.do'"
+ "</script>");
}else {
this.pw.print("<script>"
+ "alert('삭제를 완료하지 못했습니다.');"
+ "location.href='./gallery.do'"
+ "</script>");
}
}catch(ClassCastException ce) { //=? 비워져있을때
this.pw.print("<script>"
+ "alert('올바른 접근 방법이 아닙니다');"
+ "location.href='./gallery.do'"
+ "</script>");
}catch(Exception e) {
e.printStackTrace();
System.out.println(e);
}finally {
this.pw.close();
}
}
- gallery_select.java 에 추가 (Module) - shop_main2에서 호출하는 모듈
//shop_main2 sm = new shop_main2(); //Controller의 class load
shop_main2 sm; //이렇게 로드해도 됨 - Spring의 강점!
String result =""; //결과값 받을 전역변수 (Y or N)
public String del_gal(BasicDataSource dbinfo,HttpServletRequest req) throws Exception{
//req : 실제 웹경로를 가져오기 위해 controller에서 인자값으로 던짐
try {
this.con = dbinfo.getConnection();
//--실제파일 삭제
//order by : 좀더 빠르게 처리 가능
//실제 디렉토리에 저장되어있는 파일명 가져오기 위한 select query문
String query = "select gfile from gallery where gidx=? order by gidx desc";
this.ps = this.con.prepareStatement(query);
this.ps.setInt(1,this.sm.m_gidx);
this.rs = this.ps.executeQuery();
this.rs.next();
if(this.rs.getString(1) != null) { //첨부파일이 있는 경우
String filename[] = this.rs.getString(1).split(",");
String url = req.getServletContext().getRealPath("/upload/");
int w=0;
while(w<filename.length) {
File f = new File(url+filename[w]);
f.delete();
w++;
}
}
//--database 삭제
String sql = "delete from gallery where gidx=? order by gidx desc";
this.ps = this.con.prepareStatement(sql);
this.ps.setString(1,String.valueOf(this.sm.m_gidx));
this.ps.executeUpdate();
this.result="Y";
}catch(Exception e) {
System.out.println(e);
this.result="N";
System.out.println("삭제 오류");
}finally {
this.ps.close();
this.con.close();
}
return this.result;
}
'CLASS > SPRING,JSTL' 카테고리의 다른 글
#5-4 / [ legacy ] 로그인 내가 해봉거 (0) | 2024.07.12 |
---|---|
#5-3 / spring - legacy setting (0) | 2024.07.12 |
#5-1 / gallery board select-view (spring + I/O + database) (0) | 2024.07.12 |
#4-3 / gallery board select-list (spring + I/O + database) (0) | 2024.07.11 |
#4-2 / gallery board insert-write (spring + I/O + database) (1) | 2024.07.11 |