
myHomeForm.jsp
// 글 저장
function boardWrite() {
if ($("#title").val() == "") {
alert("제목을 입력하세요");
return false;
}
if ($('#summernote').summernote('isEmpty')) {
alert("내용을 입력하세요");
return false;
}
// FormData 객체 생성
// 해당 폼안에 있는 데이터들을 담기
var formData = new FormData($("#articleForm")[0]);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
processData: false,
contentType: false,
url: "/gami/board/board_myhome/insertBoard.do",
data: formData,
dataType: "text", // 변경
success: function(response) {
if (response === "success") {
alert("게시글이 성공적으로 작성되었습니다.");
// 게시글 목록으로 리다이렉트
window.location.href = "/gami/board/board_myhome/myHomeList.do";
} else {
alert("게시글 작성 중 오류가 발생하였습니다.");
}
}
});
}
필터링 기능 추가 (3.21 이민주)
<div class="filtering">
주거형태 <select name="housingType" id="housingType">
<option value="" disabled selected hidden>--- 주거형태를 선택하세요 ---</option>
<option value="원룸">원룸</option>
<option value="아파트">아파트</option>
<option value="단독주택">단독주택</option>
<option value="사무공간">사무공간</option>
<option value="상업공간">상업공간</option>
</select>
평수 <select name="homeSize" id="homeSize">
<option value="" disabled selected hidden>--- 평수를 선택하세요 ---</option>
<option value="9평 미만">9평 미만</option>
<option value="10평대">10평대</option>
<option value="20평대">20평대</option>
<option value="30평대">30평대</option>
<option value="40평 이상">40평 이상</option>
</select>
</div>
Controller
@ResponseBody
@RequestMapping(value="/insertBoard.do", method=RequestMethod.POST)
public String insertBoard(HttpSession session,
@RequestParam("title") String title,
@RequestParam("content") String content,
@RequestParam("housingType") String housingType,
@RequestParam("homeSize") String homeSize) throws Exception{
// 세션에서 아이디 가져오기
MemberDomain memberDomain = (MemberDomain) session.getAttribute("member");
myhomeDomain.setMemberId(memberDomain.getMemberId());
System.out.println(memberDomain.getMemberId());
// 새글 번호 가져오기
int newArticle = myhomeService.selectNewMyHomeNO();
System.out.println("새글 번호 : " + newArticle);
myhomeDomain.setBoardMyhomeArticleNo(newArticle);
// 파람으로 받은 제목과 내용 가져오기
myhomeDomain.setBoardMyhomeTitle(title);
myhomeDomain.setBoardMyhomeContents(content);
myhomeDomain.setBoardMyhomeHousingType(housingType);
myhomeDomain.setBoardMyhomeHomeSize(homeSize);
boolean check = myhomeService.addArticleMyHome(myhomeDomain);
// 폴더에 존재하지 않은 파일 삭제
int boardMyhomeArticleNo = newArticle;
myhomeDomain = myhomeService.selectMyHome(boardMyhomeArticleNo); // 게시글 조회
String fileRoot = "C:\\\\gami\\\\board\\\\board_myhome\\\\" + boardMyhomeArticleNo + "\\\\"; // 외부 경로
String coFileRoot = "C:\\\\gami\\\\board\\\\board_myhome\\\\coverImage\\\\" + boardMyhomeArticleNo + "\\\\";
// 위 경로로 파일 객체 생성
File saveFileDir = new File(fileRoot);
File saveFileDir2 = new File(coFileRoot);
// 글내용 파일 삭제
// 파일 목록들을 배열에 담음.
String[] saveFileList = saveFileDir.list();
// for문을 돌려서 작성된 글 내용에 파일이 포함되었나 확인
for(String saveFileName: saveFileList) {
System.out.println(saveFileName);
boolean Check = myhomeDomain.getBoardMyhomeContents().contains(saveFileName);
System.out.println("사진 포함 여부 : " + Check);
// 만약 글내용에 포함되어 있지 않다면 해당 파일 삭제.
if(myhomeDomain.getBoardMyhomeContents().contains(saveFileName)==false) {
fileRoot = "C:\\\\gami\\\\board\\\\board_myhome\\\\" + newArticle + "\\\\" + saveFileName;
saveFileDir = new File(fileRoot);
FileUtils.deleteQuietly(saveFileDir);
}
}
//커버이미지 삭제
String coverImage = myhomeService.**getCoverImageName**(boardMyhomeArticleNo); // 파일이름 가져오기
if (coverImage != null && !coverImage.isEmpty()) {
// 폴더가 존재하는지 확인
if (saveFileDir2.exists() && saveFileDir2.isDirectory()) {
// 폴더 내 모든 파일 리스트 가져오기
File[] fileList = saveFileDir2.listFiles();
if (fileList != null) {
for (File file : fileList) {
// 커버 이미지가 아닌 파일이면 삭제
if (!file.getName().equals(coverImage)) {
boolean deleted = file.delete();
System.out.println("파일 삭제됨: " + file.getName() + ":" + deleted);
}
}
}
}
}
if(check == true){ return "success"; }
else{ return "fail"; }
}
Service
@Override
public boolean addArticleMyHome(MyhomeDomain myhomeDomain) throws Exception{
try {
myhomeDAO.addArticleMyHome(myhomeDomain);
return true;
}catch(Exception e){
e.printStackTrace();
System.out.println("게시글 DB저장 중 오류 발생");
return false;
}
}
DAO
@Override
public void addArticleMyHome(MyhomeDomain myhomeDomain) throws DataAccessException {
sqlSession.insert("mapper.board.addArticleMyHome", myhomeDomain);
}