728x90
//1) 도서정보 수정 및 첨부파일이 함께 수정
@Override
public int updateBookPost(BookInfoVO bookInfoVO) {
//1 도서정보 수정
int result = this.bookInfoDao.updateBookPost(bookInfoVO);
//2) 첨부파일정보 수정
//2-1)파일객체가 있음(파일도 수정하겠음) bookInfoVO{............bookImage=org.springfra......}
if(bookInfoVO.getBookImage() != null) {
log.info("파일객체가 있음");
//업로드 폴더 설정
String uploadFolder = "C:\\eGovFrame3.10.0\\workspace\\springProj\\src\\main\\webapp\\resources\\images";
//연월일 촐더설정
File uploadPath = new File(uploadFolder, getFolder());
//만약 연월일 폴더가 없으면 생성
if(uploadPath.exists() == false) {
uploadPath.mkdirs();
}
//원래 파일명을 할당할 변수
String uploadFileName = "";
//파일정보를 확인해보자
MultipartFile multipartFile = bookInfoVO.getBookImage();
log.info("파일명 : " + multipartFile.getOriginalFilename());
log.info("파크기 : " + multipartFile.getSize());
log.info("파일MIME타입 : " + multipartFile.getContentType());
//같은 날 같은 이미지를 업로드 시 파일명 붕복 방지
//java.utill.UUID => 랜덤값 생성
UUID uuid = UUID.randomUUID();
//File객체 설계(복사할 대상 경로, uuid데이터_파일명)
//uploadPath : ....\\images\\2023\\08\\02\\
//uploadFileName : asdfdsfa_개똥이.jpg
uploadFileName = uuid.toString() + "_" + multipartFile.getOriginalFilename();
File saveFile = new File(uploadPath,uploadFileName);
try {
//파일복사 실행(원본파일 객체.transferTo(설계))
multipartFile.transferTo(saveFile);
AttachVO attachVO = new AttachVO();
//SEQ(자동검색), BOOK_ID, FILENAME
attachVO.setBookId(bookInfoVO.getBookId());
//web경로를 setting
// /2023/08.02/asdfasfdk_개똥이.jpg
attachVO.setFilename("/" + getFolder().replace("\\", "/") + "/" + uploadFileName);
//ATTACH 테이블에 update처리
result += this.bookInfoDao.addAttach(attachVO);
return result;
}catch (IllegalStateException e) {
log.error(e.getMessage());
return 0;
}catch(IOException e) {
log.error(e.getMessage());
return 0;
}
}else {
log.info("파일 객체가 없음");
//2-2)파일객체가 없음(파일은 수정안함) bookInfoVO{....bookImage=null}
return result;
}//end if
}
//연월일 폴더 생성
public String getFolder() {
//2023-08-02 형식(format)지정
//간단한 날짜 형식
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//날짜 객체 생성(java.utill.Date)
Date date = new Date();
//2023-08-02
String str = sdf.format(date);
//File.separator : 윈도우 폴더 구분자(2023\\08\\02)
return str.replace("-", File.separator);
}
'Spring > Spring 기초' 카테고리의 다른 글
hibernate 라이브러리 (0) | 2023.08.09 |
---|---|
Spring Ajax Post방식 사용 방법 (0) | 2023.08.04 |
e7e샘의 파일 업로드 연습 (0) | 2023.08.01 |
보충수업 Boomerang(부메랑) (0) | 2023.07.28 |
Spring 정리 (0) | 2023.07.27 |