<body>
	<h1 align="center">${board.boardNo }번 게시글 수정하기</h1>
	<br><br>
	<form action="/board/modify.kh" method="post" enctype="multipart/form-data">
		<input type="hidden" name="boardNo" value="${board.boardNo }">
		<input type="hidden" name="boardFilename" value="${board.boardFilename }"> 
		<input type="hidden" name="boardFileRename" value="${board.boardFileRename }">
		
		<table align="center" border="1">
			<tr>			
				<td>제목</td>
				<td><input type="text" name="boardTitle" value="${board.boardTitle }"></td>
			</tr>
			<tr>			
				<td>작성자</td>
				<td><input type="text" name="boardWriter" value="${board.boardWriter }" readonly></td>
			</tr>
			<tr>			
				<td>내용</td>
				<td><textarea  cols="30" rows="7" name="boardContents" >${board.boardContents }</textarea></td>
				<!--textarea는 value이 없어서 태그사이에 값으로 넣어준것임.  -->
			</tr>
			<tr>			
				<td>첨부파일</td>  <!--첨부파일에는 value값이 없다  -->
				<td><input type="file" name="reloadFile" >
					<a href="#">${board.boardFilename }</a>
				</td>
			</tr>
			<tr>			
				<td colspan="2">
					<input type="submit" value="수정">
					<a href="/board/list.kh">목록으로</a>
					<a>이전 페이지로</a>
				</td>
			</tr>
		</table>
	</form>

</body>​

게시글 수정하기....그중 포인트는 첨부파일이다.

처음 등록할때 name이 uploadFile이였는데 수정안해서 오류 발생했다....

	public ModelAndView boardModify(@ModelAttribute Board board
			,ModelAndView mv
			, @RequestParam(value="reloadFile",required=false)MultipartFile reloadFile //위에서 upload였는데 여기선 reloadFile로 변경
			, HttpServletRequest request) {
		try {
			String boardFilename=reloadFile.getOriginalFilename();
			if(reloadFile !=null && !boardFilename.equals("")) {
				//파일 이 있거나, 파일명이 있을때
				// 수정방법 = 1, 대체 2, 삭제 후 저장  ==>삭제후 저장이 오히려 편함
				//파일 경로를 알아야 한다. 리케스트 필요 httpHttpServletRequest request
				//파일 삭제
				String root=request.getSession().getServletContext().getRealPath("resources");
				String savedPath = root + "\\buploadFiles";
				// 파일이름을 갖고 오고자 db로 갈필요는 없음. 이 jsp에 board 자료가 있음
				
				File file= new File(savedPath+"\\"+board.getBoardFileRename());//file.io 
				if(file.exists()) { //파일이 정말 있는지 확인
					file.delete(); //파일 지움
				}
				//삭제 했으니깐 다시 저장
				SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
				String boardFileRename=sdf.format(new Date(System.currentTimeMillis()))+"."
						+boardFilename.substring(boardFilename.lastIndexOf(".")+1); 
				//substring 때문에 1을 더한것임
				//lastIndexOf(".")은 파일.뒤의 확장자 구하는 것이다.
				String boardFilepath=savedPath+"\\"+boardFileRename;
				reloadFile.transferTo(new File(boardFilepath));
		

				board.setBoardFilename(boardFilename);				
				board.setBoardFileRename(boardFileRename);
				board.setBoardFilepath(boardFilepath);
			}
			int result=bService.modifyBoard(board);
			mv.setViewName("redirect:/board/list.kh");
		}catch(Exception e) {
			mv.addObject("msg", e.toString()).setViewName("common/errorPage");
		}
		return mv;

param으로 첨부파일 가져올때 명칭 조심!

파일삭제할때 위치한 폴더는 getRealPath("resources")인가보다....타이핑 치다보면 계속 놓친다.

파일 저장은 위에서 복사 넣기 인데  여기서 필요 없는 부분도 많으니깐 잘 보고 가져오기!!!

<update id="updateBoard">
		UPDATE BOARD_TBL SET BOARD_TITLE=#{boardTitle}, BOARD_CONTENTS=#{boardContents},
        BOARD_FILENAME=#{boardFilename},BOARD_RENAME=#{boardFileRename}, 
        BOARD_FLIEPATH=#{boardFilepath} , B_UPDATE_DATE=DEFAULT WHERE BOARD_NO=#{boardNo}
	</update>

매핑 할때 오타와 기호 조심///////, 빼먹었더니........난리다 난리....

이렇게 첨부파일 수정하였음

+ Recent posts