파일 업로드 기능을 구현하면서, 기존 코드에서는 파일의 이름을 바꾸지 않고 그대로 업로드했는데,
이 경우 같은 이미지의 데이터 두 개 올린 후, 둘 중 하나의 데이터를 지울 경우 다른 한쪽의 이미지도 함께 삭제되어 보이지 않게 되었다.
파일명만 같고 내용이 다른 파일을 사용자가 업로드 하게 된다면, 이전의 파일이 소실되는 문제 또한 발생할 수 있다.
따라서 파일명을 중복되지 않게 저장하는 방법이 필요하다.
- 파일명에 업로드시간 ( timestamp)를 붙여주기
- 랜덤 한 문자열(UUID)을 생성하여 파일명 앞에 붙여주기
이 포스트에서는 UUID를 활용해보았다.
랜덤 한 문자열을 생성하여 파일명 앞에 붙여주기 - UUID
UUID uuid = UUID.randomUUID();
Path savePath = Paths.get(rootDirectory + "\\resources\\images\\" + uuid.toString() + "_" +productImage.getOriginalFilename());
- UUID.randomUUID()를 사용하여 유일한 식별자 생성하기
- UUID.toString을 활용해 문자열로 만들어 파일 앞에 붙여주기.
1. 파일 업로드
위의 사진처럼 파일 이미지 앞에 고유 식별자가 들어가, 같은 이름의 이미지가 각각 저장되었다.
2. 데이터 삭제
하나의 이미지만 삭제되었다.
https://doublesprogramming.tistory.com/128
'Study > Spring' 카테고리의 다른 글
[Spring] Store - Cart View / AngularJS - RestAPI / 오류해결 (0) | 2022.09.02 |
---|---|
[Spring] Store - Cart View (장바구니) / AngularJS - RestAPI (0) | 2022.08.25 |
[Spring] Store - CartModel / REST API (0) | 2022.08.23 |
[Spring] Store - Product Detail (0) | 2022.08.20 |
[Spring] Store - Register User / Spring security (0) | 2022.08.18 |