해당 후기의 수정을 눌렀을 때
아래와 같은 팝업창이 뜨고 사진을 새롭게 설정할 수 있다.
파일처리가 아직 어려웠는데 이번에 하고 조금 가까워진거같기도..하다...
서블릿에서 팝업창 끄는데 애먹었는데 구글신이 구해주셨다..휴..
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
ReplyDAO dao = new ReplyDAO();
int result = 0;
String savePath = "upload";// 저장하는 폴더
int uploadFileSizeLimit = 5 * 1024 * 1024;
String encType = "utf-8";
ServletContext context = getServletContext();
String uploadFilePath = context.getRealPath(savePath);
//
try {
MultipartRequest multi = new MultipartRequest(request, uploadFilePath, uploadFileSizeLimit, encType, new DefaultFileRenamePolicy());
// <input type="file" name="replyFile">
String rewiewPic = multi.getFilesystemName("replyFile");
String reviewNum = multi.getParameter("reviewNum");
String productReply = multi.getParameter("productReply");
// String productName = multi.getParameter("productName");
String grade = multi.getParameter("grade");
//
// String encodedproductName = URLEncoder.encode(productName, "UTF-8");
//파일 경로가 뷰가 있는 위치와 같고 폴더는 업로드 폴더이다.
//기존 파일을 삭제한다.
System.out.println(rewiewPic);
System.out.println(rewiewPic==null);
System.out.println(rewiewPic!=null);
//새로운 사진이 있으면
if(rewiewPic!=null) {
System.out.println("새 사진이 있어요");
if(multi.getParameter("delRvpic")!=null) {
System.out.println("파일이 있어요");
//이전 사진의 이름을 받아와서 삭제한다.
File file = new File(context.getRealPath("/upload/")+multi.getParameter("oldRvpic"));
if (file != null) {
file.delete();
//db데이터도 삭제한다.
int delResult = dao.deleteRvpick(reviewNum);
if(delResult == 1) {
System.out.println("기존파일 삭제 완료.");
}
}
}
result = dao.updateReply(grade, productReply, rewiewPic, reviewNum);
}else {
//새로운 사진이 없으면 기존의 파일명을 그대로
System.out.println("기존사진");
System.out.println(multi.getParameter("oldRvpic"));
result = dao.updateReply(grade, productReply, multi.getParameter("oldRvpic"), reviewNum);
}
} catch (IOException e) {
System.out.println("파일업로드실패");
System.out.println(e.getMessage().isEmpty());
}
if(result == 1) {
String str="";
str = "<script language='javascript'>";
str += "opener.window.location.reload();"; //오프너 새로고침
str += "self.close();"; // 창닫기
str += "</script>";
out.print(str);
}else {
System.out.println("댓글 수정이 안됐쏘........");
}
}
<div id="photo"></div>
function setThumbnail(event){
var reader = new FileReader();
reader.onload = function(event){
var img = document.createElement("img");
//파일 이미지 축소
img.height = 300;
img.setAttribute("src", event.target.result);
img.setAttribute("class", "col-lg-6");
document.querySelector("div#photo").appendChild(img);
};
reader.readAsDataURL(event.target.files[0]);
}
<div class="filebox">
<input id="filetext" value="첨부파일" placeholder="첨부파일"/>
<label for="uploadProduct">사진등록</label>
<input type="file" id="uploadProduct" name="uploadProduct" onchange="setThumbnail(event);">
</div>