files라는 테이블을 하나 만든다. no 가 PK
File의 dto, vo 객체를 다음과 같이 만든다.
BoardDTO에 FileDTO 객체 추가
새로운 게시물의 파일들을 insert하는 쿼리문과, 전달받은 no의 게시물을 전부 가져오는 역할의 select문을 작성
BoardService 클래스를 만든다. 여러개의 mapper를 트랜젝션 처리하는 용도이다. 게시물의 업로드와 게시물 안의 파일 업로드 기능을 동시에 한다. 이미 만들어놓았던 insert_board를 여기에 잘라낸다.
이미 만들어져있는 게시물 작성 페이지와, 게시물 보기 페이지를 이렇게 수정한다.
BoardController로 가서, 일단 파일 저장을 담당하는 일반 메소드를 만든다. SAVE_PATH라는 파일 경로 변수를 먼저 만든 후에, 다음과 같이 설정한다.
배웠던 카테고리 방식을 이용하여, 다운로드가 가능하도록 설정하였다. view.jsp에서 첨부파일 리스트 내의 a태그에 다운로드가 가능하도록 설정해 놓았다.
실제 DB와 연동 후 전달받은 내용으로 insert를 시도. boardService 클래스에 만들어 놓았던 게시물 작성 및 파일 업로드 메소드 insert_board를 불러온다.
이미 만들어 놓은 게시물 보기 GET을 다음과 같이 수정한다. 업로드한 파일이 보여져야 하기 때문.
파일 업로드 후, 게시물에 들어가봤다.. 문제는 경로 설정이 제대로 되어 있지 않아, 그 곳에 데이터가 저장되지 못해, 메인 이미지가 불러오지 못했고, 첨부파일은 다운로드가 되지 않았다.
경로 설정을 제대로 한 후, 게시물을 다시 올려봤다. 해당 경로에 이미지가 저장이 되어 있었고, 역시 이미지와 첨부파일이 제대로 올려져 있다.
'Spring' 카테고리의 다른 글
자바스크립트의 fetch() 함수 (0) | 2023.08.18 |
---|---|
[Spring] Restful (0) | 2023.08.17 |
[Spring DB] 게시판 만들기 (3) (0) | 2023.08.15 |
[Spring DB] 게시판 만들기 (2) (0) | 2023.08.14 |
[Spring DB] 게시판 만들기 (1) (0) | 2023.08.11 |