혼자 살아남기
748
2020-04-06 14:59:27 작성 2020-04-06 15:24:26 수정됨
5
578

java 서버에서 이미지 업로드 파일이름 중복 어떻게 처리하시나요?


이미지 파일 명이 따로 없어서

프론트 단(리액트 네이티브)에서 랜덤 숫자 붙혀서 보내주는데( ex image_${rendomNumber}.jpg),

이것도 중복된 랜덤숫자가 나와버리면 에러 발생하고 저장이 안됩니다. 


보통 파일명이 따로 없을경우 파일name 짓는 방법? 이런게 있나요?

다른분들, 선배님들은 어떻게 하시는지 궁금합니다. 


----------------추가-------

앱단에서 갤러리에서 다중선택하여 가져옵니다.

1~10개 정도 되는데 이 파일들에 대한 

원본 name 과 변경 후 name 이렇게 꼭 저장할 필요가 있나요?

지금 name을 직접 만들어줘서 저장을 시켜줍니다.

DB 저장시에는 String 으로 "{img_path : "sample.jpg", ...}"  json 있는 그대로 저장해두고 있습니다.

0
0
  • 댓글 5

  • 오후
    1k
    2020-04-06 15:08:13

    원본파일명 + 변경된파일명(패스) 따로 저장하며

    변경된 파일명은 년월일시분초(밀리초)+랜덤숫자 붙여 저장합니다.

    0
  • ercnam
    3k
    2020-04-06 15:26:27

    중복 랜덤숫자가 나오면 다시 랜덤 돌려서 이름붙이게 하면 되겠네요.

    다만 이 경우 생성된 파일명을 전체 파일명과 대조해봐야 하겠습니다만..

    오후님처럼 생성시간까지 넣으시면 거의 엥간해선 충돌나진 않을거 같습니다.

    0
  • 작별왕바이킹
    376
    2020-04-06 15:27:47

    예전에 'UUID_밀리초'로 저장했어요.

    0
  • 김모씨
    3k
    2020-04-06 15:54:19
    걍 테이블에 원본파일명컬럼 저장파일명컬럼 만들고. 저장파일은 경로_하부경로_시분초(or사번시분초) 정도로 만듭니다. 짐작할수 있게 만들면 직접 다운도 가능하거든요. 그걸방지하는겸..
    1
  • 수평선
    1k
    2020-04-06 20:42:38

    [중복파일명 체크 방식에는 대략 4가지 방식이 있습니다.]

    방식1:인덱스방식

    중복파일이 있으면 인덱스를 1증가시켜서 이름을 만듬니다.

    방식2:디렉토리 파일개수 방식(인덱스방식과 비슷하지만 첫인덱스가 파일개수라는 차이있음)

    저장 디렉토리 파일개수가 인덱스가 됩니다.

    방식3:시간값방식

    저장시점의 시간을 밀리초나 나노초 구해서 인덱스화 합니다.

    방식4:랜덤넘버방식

    uuid를 활용하거나 랜덤을 활용합니다.

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.