티스토리 뷰

의외로 중요한 자바 파일 다루는것을 잘 못하는 개발자가 많다.

그냥 파일명을 년월일시분초밀리세컨드 하면 유일하다고 생각하는 사람이 많다.

하지만 동시접속하는 사람이 많으면 얘기가 달라진다.

중복이 생길수가 있다.

그래서 년월시시분초밀리세컨드로 부족하니 랜덤값을 붙여주는게 좋다.

아래 코드는 년월시시분초밀리세컨드+5자리 랜덤값을 붙여 리턴하는 메소드 이다.

이러면 유일한 값으로 사용할 수 있을것이다.

정 불안하면 랜덤값을 더 만들어도 되고..

 

컨피그에는

<entry key="file.baseDir">D:/fileDown</entry>
<entry key="file.dirPattern">yyyy/MM/dd</entry>
<entry key="file.savePattern">yyyyMMddHHmmssSSS</entry>



라고 가정하고

public File makeUploadDirSuffix(String ty, String userFileName){
  
  Random rand=new Random();
  int randNum=rand.nextInt(10000);
  
  String suffix=String.valueOf(randNum);
  
  String code="AA";
  String fileDirPattern=CommonUtil.getConfig("file.dirPattern");

  if(StringUtil.safe(fileDirPattern)){
    fileDirPattern=DateUtil.getDateString(new Date(), fileDirPattern);
  }

  String fileUploadDir = CommonUtil.getConfig("file.baseDir")+"/"+code+"/"+ty+"/"+fileDirPattern;
  
  String fileSavePattern=CommonUtil.getConfig("file.savePattern");
  
  if(StringUtil.safe(fileSavePattern)){
    fileSavePattern=DateUtil.getDateString(new Date(), fileSavePattern)+suffix;
    
    if(userFileName.lastIndexOf(".")>-1){
      fileSavePattern+=userFileName.substring(userFileName.lastIndexOf("."));
    }
   }
   
   File uploadDirFile=new File(fileUploadDir);
   
   if(!uploadDirFile.exists()){
     uploadDirFile.mkdirs();
   }
     
   return new File(fileUploadDir+"/"+fileSavePattern);

  }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함