JSP/BBS

update

GAWON 2023. 6. 9. 17:56
<%@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>