FileService
2024. 4. 11. 16:51ㆍ개발일지
package com.example.totalproject.Service;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileOutputStream;
import java.util.UUID;
//파일업로드 기능을 Service
//A.jpg-->c:/upload/item에 A.jpg
//A.jpg-->c:/upload/item에 A.jpg 이전에 존재한 A.jpg는 삭제
//파일명의 중복을 방지하기 위해서 UUID 사용
//A.jpg-->c:/upload/item에 1234567845123456.jpg
//수정 기존파일 1234567845123456.jpg 삭제
//새로운 파일을 추가 A.jpg-->c:/upload/item에 1234567845123456.jpg
@Service
public class FileService {
//파일업로드
//uploadFile(저장위치, 파일명(a.jpg), 파일데이터)--->새로운파일명(1236546.jpg)
public String uploadFile(String uploadPath, String originalFileName,
byte[] filedata) {
UUID uuid = UUID.randomUUID(); //난수로 이름을 생성
//abc.jpg===>jpg 분리(이미지파일의 확장자 분리)
String extension = originalFileName.substring(
originalFileName.lastIndexOf("."));
//45651233.jpg =>난수파일명에 확장자를 결합해서 새로운 파일명을 만들기(전달값)
String saveFileName = uuid.toString()+extension;
//c:uploaditem45651233.jpg 저장할 위치와 파일명을 결합(작업처리)
String uploadFullUrl = uploadPath+saveFileName;
//하드디스크에 파일 저장
try {
//c:upload item 45651233.jpg이름으로
FileOutputStream fos = new FileOutputStream(uploadFullUrl);
//파일을 저장
fos.write(filedata);
fos.close();
} catch(Exception e) {
}
return saveFileName;
}
public void deleteFile(String uploadPath, String fileName) {
//경로+파일명
String deleteFileName = uploadPath+fileName;
File deleteFile = new File(deleteFileName);
if(deleteFile.exists()) {
deleteFile.delete();
}
}
}
'개발일지' 카테고리의 다른 글
SecurityConfig (0) | 2024.04.11 |
---|---|
LoginService (0) | 2024.04.11 |
movice-service (0) | 2024.04.11 |
member-service (0) | 2024.04.11 |
movie-controller (0) | 2024.04.11 |