<!-- home.jsp -->
<a href="/myapp/board/insert">글쓰기</a>
@Controller
@RequestMapping("board/*")
public class **BoardController** {
@Autowired
private BoardService boardService;
@GetMapping("insert")
// 권한이 있는 사람만 들어갈 수 있도록!!
// 만약 없는데 접근하면 바로 로그인창 튀어나옴
@PreAuthorize("isAuthenticated()")
public void insert() {
}
<!-- insert.jsp -->
<form action="insert" method="post" enctype="multipart/form-data">
출처 : https://junghyun100.github.io/Multipart_form-data/
@PostMapping("insert")
public String insert(Board board, HttpServletRequest request) throws IOException {
String saveDir = request.getSession().getServletContext().getRealPath("/");
saveDir+="resources\\\\img\\\\"; // 내가 만든 폴더가 업로드 폴더가 되게 설정
System.out.println("saveDir : " + saveDir); //saveDir : C:\\devtools\\mywork\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\SpringSecurity\\
MultipartFile f = board.getUploadFile();
String fileName = "";
if (!f.isEmpty()) { // 파일이 있다면 , 아예 업로드 하지 않아도 넘어가나? ㅇㅇ
String orifileName = f.getOriginalFilename();
//System.out.println("orifileName :" + orifileName);
// 파일명 지정 uuid 이용
UUID uuid = UUID.randomUUID(); // 랜덤 변수 하나 만들기
fileName = uuid + "_" + orifileName;
FileCopyUtils.copy(f.getBytes(), new File(saveDir + fileName)); // 실질적인 파일 업로드 처리
//f.transferTo(new File(saveDir + fileName)); // 위와 같은 결과
board.setBimg(fileName);
}
boardService.insert(board);
System.out.println("글쓰기 성공");
return "redirect: list";
}
@Service
public class **BoardService** {
@Autowired
private BoardRepository boardRepository;
public void insert(Board board) {
boardRepository.insert(board);
}
@Repository
public class **BoardRepository** {
@Autowired
private BoardMapper boardMapper;
public void insert(Board board) {
boardMapper.insert(board);
}
public interface **BoardMapper** {
public void insert(Board board);