<%@page import="org.joonzis.ex.BDao"%>
<%@page import="java.net.Inet4Address"%>
<%@page import="org.joonzis.ex.BVO"%>
<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String realPath = request.getServletContext().getRealPath("/upload");
MultipartRequest mr = new MultipartRequest(
request,
realPath,
1024 * 1024 * 10, // 바이트 단위 (1024=1KB) (1024KB=1MB)
"utf-8",
new DefaultFileRenamePolicy()
// 동일한 이름의 파일이 업로드되면 어떤 방식으로 저장할 것인지
// 기본 값 : 파일 뒤에 번호를 붙임
);
BVO bvo = new BVO();
bvo.setB_idx(Integer.parseInt(mr.getParameter("b_idx")));
bvo.setTitle(mr.getParameter("title"));
bvo.setContent(mr.getParameter("content"));
bvo.setIp(Inet4Address.getLocalHost().getHostAddress());
/*
첨부 파일 수정
1.기본 첨부가 있는 경우
1)새 첨부가 없으면 기존 첨부 그대로 사용
2)새 첨부가 있으면 기존 첨부 삭제 후 새 첨부 사용
2.기존 첨부가 없는경우
1)새 첨부 사용
*/
File newfile = mr.getFile("filename"); //새 첨부 파일
String oldfile = mr.getParameter("oldfile"); //기존 첨부 파일
if(newfile != null){ //새 첨부 파일 o
if(oldfile != null){//기존 첨부 파일 o
File removeFile = new File(realPath + "/" + oldfile);
if(removeFile.exists()){ //기존 첨부 파일 유무 확인
removeFile.delete(); //기존 첨부 파일 삭제
}
}
bvo.setFilename(newfile.getName()); //새 첨부 파일 이름 저장
}else{ //새 첨부 파일 x
if(oldfile != null){ //기존 첨부 파일 o
bvo.setFilename(oldfile);
}else{ //기존 첨부 파일 x , 새 첨부 파일 x
bvo.setFilename("");
}
}
int result = BDao.getupdate(bvo);
pageContext.setAttribute("result", result);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
<c:when test="${result gt 0 }">
<script type="text/javascript">
alert("방명록이 수정되었습니다");
location.href="index.jsp";
</script>
</c:when>
<c:otherwise>
<script type="text/javascript">
alert("방명록이 수정을 실패했습니다");
history.go(-1);
</script>
</c:otherwise>
</c:choose>
</body>
</html>