게시판 글 쓰기....
파일도 첨부할거라서 DTO org_file 에 multipart[] 를 주려고 했다
그리고 dto 로 다 받고 Impl 에서 각 Entity 들에게 나눠 주려고 했는데
get,set 해놓은 거 때문에 쓸 수가 없었다...
그래서 그걸 해보겠다고 난리 치다가 결국 못 하고
이렇게 했다
BoardController
@PostMapping("/board/write")
public void insertBoard(BoardFileDTO dto, @RequestPart(name = "uploadfiles", required = false) MultipartFile[] uploadfiles ) throws IOException {
boardService.insertBoard(dto, uploadfiles);
}
BoardService
public void insertBoard(BoardFileDTO dto, MultipartFile[] uploadfiles) throws IOException;
BoardServiceImpl
@Override
public void insertBoard(BoardFileDTO dto, MultipartFile[] uploadfiles) throws IOException {
if (uploadfiles != null && uploadfiles.length > 0) {
for (MultipartFile file : uploadfiles) {
if (!file.isEmpty()) {
String originalFilename = file.getOriginalFilename();
String storedFilename = (UUID.randomUUID().toString().replaceAll("-", "") + ".jpg");
File storedFile = new File(storedFilename);
file.transferTo(storedFile);
FileEntity files = dto.toFile();
files.setOrg_file(originalFilename); // 원본 파일 이름
files.setStored_file(storedFilename); // 저장된 파일 이름
mapper.insertFile(files); // 여기서 fno 값이 자동으로 설정
int fno = files.getFno(); // 새롭게 생성된 fno 값을 가져오기
BoardEntity board = dto.toBoard();
board.setFno(fno);
mapper.insertBoard(board);
return;
}
}
}
BoardEntity board = dto.toBoard();
board.setFno(0);
mapper.insertBoard(board);
}
BoardMapper
@Options (useGeneratedKeys = true, keyProperty = "fno")
@Insert("INSERT INTO files (org_file, stored_file, file_group) VALUES (#{org_file}, #{stored_file}, null)")
public void insertFile(FileEntity files);
@Insert("INSERT INTO board (fno, title, id, content, viewcount, created_date, updated_date) VALUES (#{fno}, #{title}, #{id}, #{content}, #{viewcount}, NOW(),NOW())")
public void insertBoard(BoardEntity board);
Impl 제대로 보면 파일 두개 못 올린다ㅋㅋ
나중에 수정해야지... 파일 선택 안 할 때 로직 추가하다가 글쓰기 테스트 해보다가 정신 없어서 까먹었다..
여튼 dto 는 board 로 받고 uploadfiles 는 배열 돌리고 저장하고 나서 file 로 받는다.
int fno ~ 이부분 어케든 줄이고 싶었는데 불가능 했다 files.getFno()를 board.setFno 에 넣으면 되는 거 아냐? 싶지만 0 들어감ㅋㅋ 그래서 그냥 int 로 바꿔줬다.... 쉽게 되는 게 하나도 없어서 너무 스트레스 받았다,,,,