if(files!=null){
for (MultipartFile file : files) {
String originalFileName = file.getOriginalFilename();
String fileName = originalFileName.substring(0,originalFileName.lastIndexOf(".")); //이름 추출
String extension = originalFileName.substring(originalFileName.lastIndexOf(".")+1); // JPG
extension = extension.toLowerCase(); //확장자 소문자 변환 JPG -> jpg
String match = "[^\uAC00-\uD7A3xfe0-9a-zA-Z\\s]";
fileName = fileName.replaceAll(match, " "); //파일 이름 특수문자 제거
fileName = fileName.replaceAll("\\s+",""); //파일 이름 공백 제거
String saveFileName = userSeq + "-" + System.currentTimeMillis()+"-"+fileName+"."+extension;
File dest = new File(savePath + "/" + saveFileName);
file.transferTo(dest);
String url = dest.getName();
// 이미지 파일 종류 제한 등에 사용
if(extension.equals("jpg")
|| extension.equals("jpeg")
|| extension.equals("gif")
|| extension.equals("png")
|| extension.equals("bmp")) {
}else if(extension.equals("avi")
|| extension.equals("wmv")
|| extension.equals("mpeg")
|| extension.equals("mpg")
|| extension.equals("mkv")
|| extension.equals("mp4")
|| extension.equals("divx")) {
//허가되지 않은 확장자 예외 처리
throw new CNotAllowedExtension();
}else{
// 비지정 확장자의 경우 에러 처리 필요 , 사이즈도 검증 필요
throw new CUnknownExtension();
}
user.setProfileImage(url);
}
}
'BackEnd > Java' 카테고리의 다른 글
[Java] EntityNotFountException (0) | 2022.12.01 |
---|---|
[Java] 파일 업로드 구현시 한글깨짐 현상 / 인코딩 하기 (0) | 2022.04.08 |
[Java] 파일명 저장시 암호화, 파일 이름 중복 방지하기 (0) | 2022.04.08 |