Hello

파일첨부_게시글 및 파일이름 DB 저장 처리

by 볼빵빵오춘기

Board2Service - 6번 작성

public void save(Board2DTO boardDTO) throws IOException {
    // 파일 첨부 여부에 따라 로직 분리
    if(boardDTO.getBoardFile().isEmpty()){
        // 첨부 파일이 없는 경우
        Board2Entity board2Entity = Board2Entity.toSaveEntity(boardDTO);
        board2Repository.save(board2Entity);
    }else{
        // 첨부 파일이 있는 경우
        /*
            1. DTO에 담긴 파일을 꺼냄
            2. 파일의 이름 가져옴
            3. 서버 저장용 이름을 만듦
            4. 저장 경로 설정
            5. 해당 경로에 파일 저장
            6. board_table에 해당 데이터 save 처리
            7. board_file_table에 해당 데이터 save 처리
         */

        MultipartFile boardFile = boardDTO.getBoardFile(); // 1
        String originalFilename = boardFile.getOriginalFilename();// 2
        String storedFileName = System.currentTimeMillis() + "_" + originalFilename; // 3
        String savePath = System.getProperty("user.dir")+"/src/main/resources/static/files/"+storedFileName; // 4
        boardFile.transferTo(new File(savePath)); // 5

        Board2Entity board2Entity = Board2Entity.toSaveFileEntity(boardDTO);

        Long saveId = board2Repository.save(board2Entity).getId(); // 6
        Board2Entity board2 = board2Repository.findById(saveId).get();


    }
}

 

BoardFileEntity

public static BoardFileEntity toBoardFileEntity(Board2Entity boardEntity, String originalFileName, String storedFileName) {
    BoardFileEntity boardFileEntity = new BoardFileEntity();
    boardFileEntity.setOriginalFileName(originalFileName);
    boardFileEntity.setStoredFileName(storedFileName);
    boardFileEntity.setBoardEntity(boardEntity);
    return boardFileEntity;
}

 

Board2Service - 7번 작성

BoardFileEntity boardFileEntity = BoardFileEntity.toBoardFileEntity(board2, originalFilename, storedFileName);

 

BoardFileRepository

public interface BoardFileRepositoy extends JpaRepository<BoardFileEntity,Long> {
}

 

Board2Service - 7번 마무리

private final BoardFileRepositoy boardFileRepositoy;
BoardFileEntity boardFileEntity = BoardFileEntity.toBoardFileEntity(board2, originalFilename, storedFileName);
boardFileRepositoy.save(boardFileEntity);

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기