22-08-12 진행상황

(。◠ ◠。)·2022년 8월 12일
0

해당 후기의 수정을 눌렀을 때

아래와 같은 팝업창이 뜨고 사진을 새롭게 설정할 수 있다.

파일처리가 아직 어려웠는데 이번에 하고 조금 가까워진거같기도..하다...
서블릿에서 팝업창 끄는데 애먹었는데 구글신이 구해주셨다..휴..

댓글 수정 서블릿

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>
profile
화이탱!

0개의 댓글