MultipartRequest는 COS.jar라이브러리에 존재하는 클래스 이기 때문에
[1] 먼저 WebContenet/WEB-INF/lib 에 COS.jar를 넣어 준다.
[2] 파일을 전송하기 위해서는 jsp의 폼태그 속성을 method="post" enctype="multipart/form-data" 로 적용해 주고
input태그의 타입은 file로 설정 해 준다.
<form name="frm" method="post" enctype="multipart/form-data">
<input type="file" name="img">
[3] jsp에서 받은 데이터를 VO에 저장하고, DAO로 insert해준다.
// 업로드 크기 제한
int sizeLimit = 5 * 1024 * 1024;
// 다운받는 경로
String savePath = "image";
ServletContext context = session.getServletContext();
// 서버상의 실제 디렉토리
String uploadFilePath = context.getRealPath(savePath);
MultipartRequest multi = new MultipartRequest(request, // 1. 요청 객체
uploadFilePath, // 2. 업로드될 파일이 저장될 파일 경로명
sizeLimit, // 3. 업로드될 파일의 최대 크기(5Mb)
"UTF-8", // 4. 인코딩 타입 지정
new DefaultFileRenamePolicy() // 5. 덮어쓰기를 방지 위한 부분
); // 이 시점을 기해 파일은 이미 저장이 되었다
ReviewVO reviewVO = new ReviewVO();
//request를 담고있는 multi를 이용해 업로드 된 파일의 이름 set
reviewVO.setImg(multi.getFilesystemName("img"));
ReviewDAO reviewDAO = ReviewDAO.getInstance();
reviewDAO.insertReview(reviewVO);
[+] 수정(update)하기 위해 값을 넘겨 받을 때는
jsp에 미리 이전 값을 저장해두고
<input type="hidden" name="origin_img" value="${reviewVO.img}">
이렇게 적용해주었음
if (multi.getFilesystemName("img") == null) {
reviewVO.setImg(multi.getParameter("origin_img"));
} else {
reviewVO.setImg(multi.getFilesystemName("img"));
}
'서블릿 JSP' 카테고리의 다른 글
JSP 조인한 테이블로 데이터 가져오기 (0) | 2022.10.02 |
---|---|
JSP DB연동하기, 커넥션 풀(DBCP) (0) | 2022.09.30 |
Servlet EL, JSTL태그 (0) | 2022.09.22 |
Servlet 자바빈, 액션태그 (0) | 2022.09.18 |
Servlet 저장소 (0) | 2022.09.17 |