본문 바로가기

Study/Spring

[Spring] 파일 업로드 중복 제거 - UUID

파일 업로드 기능을 구현하면서, 기존 코드에서는 파일의 이름을 바꾸지 않고 그대로 업로드했는데,

이 경우 같은 이미지의 데이터 두 개 올린 후, 둘 중 하나의 데이터를 지울 경우 다른 한쪽의 이미지도 함께 삭제되어 보이지 않게 되었다.

파일명만 같고 내용이 다른 파일을 사용자가 업로드 하게 된다면, 이전의 파일이 소실되는 문제 또한 발생할 수 있다.

따라서 파일명을 중복되지 않게 저장하는 방법이 필요하다.

 

  1. 파일명에 업로드시간 ( timestamp)를 붙여주기
  2. 랜덤 한 문자열(UUID)을 생성하여 파일명 앞에 붙여주기 

이 포스트에서는 UUID를 활용해보았다.

 

랜덤 한 문자열을 생성하여 파일명 앞에 붙여주기 - UUID

 

UUID uuid = UUID.randomUUID();
Path savePath = Paths.get(rootDirectory + "\\resources\\images\\" + uuid.toString() + "_" +productImage.getOriginalFilename());
  1. UUID.randomUUID()를 사용하여 유일한 식별자 생성하기
  2. UUID.toString을 활용해 문자열로 만들어 파일 앞에 붙여주기.

 

 

1. 파일 업로드

 

 

 

위의 사진처럼 파일 이미지 앞에 고유 식별자가 들어가, 같은 이름의 이미지가 각각 저장되었다.

 

 

2. 데이터 삭제

 

 

하나의 이미지만 삭제되었다.

 

 


https://doublesprogramming.tistory.com/128

 

# Spring - 파일업로드 연습2 (파일명 중복제거)

관련포스팅 : Spring - 파일 업로드 연습1 (일반적인 방식) 지난번 포스팅에서 구현한 파일 업로드의 문제점은 새로운 파일을 업로드할 때, 업로드된 파일명과 중복되면 그대로 덮어쓰게 된다는 점

doublesprogramming.tistory.com