Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자동커밋
- 리액트 패치노트
- java 신입면접
- 키바나
- java 면접정리
- NextJs
- 백엔드 신입
- 자동잔디
- githubaction
- 엘라스틱서치
- 파일비트
- 로그스태쉬
- 깃허브액션
- 프론트엔드 면접
- 도커컴포즈
- 리액트 #무한스크롤
- 잔디심기
- 엘라스틱서치로 로그관리
- 백엔드 면접
- next로 jwt
- 자바 패치노트
- 자바 패치
- 리액트 패치
- java 신입
- 프론트 면접
- 리액트 버전
- nextjs와 typescript
- 자바17
- 프론트 면접족보
- 프론트엔드 신입
Archives
- Today
- Total
천쓰의 개발동산
SRPING BOOT - 파일 DB 저장 하여 사용하는 방법 본문
반응형
파일을 저장하여, 다운로드까지 쓰는 자료실을 구현을 맡아 진행하였다.
일단 사이트에서 파일을 내가 설정한 경로로 저장을 할수있게
application.properties 에 경로 설정하여 @VALUE로 뽑아쓰면된다 !
nas.filepath=/path/to/nas/directory
나는 .env 방식으로 썻지만 설명을 간단하게 하기위해 이방법으로 설명하겠다
//서비스
@Value("${nas.filepath}")
private String nasFilePath;
public List<String> saveFiles(List<MultipartFile> files) throws IOException {
Path root = Paths.get(nasFilePath);
if (!Files.exists(root)) {
Files.createDirectories(root);
}
List<String> filePaths = new ArrayList<>();
for (MultipartFile file : files) {
if (file.isEmpty()) {
throw new IOException("Failed to store empty file " + file.getOriginalFilename());
}
Path destinationFile = root.resolve(Paths.get(file.getOriginalFilename())).normalize().toAbsolutePath();
Files.copy(file.getInputStream(), destinationFile);
filePaths.add(destinationFile.toString());
}
return filePaths;
}
////////////////////////////////////////////////////////////////////////////////////////////////
//컨트롤
@PostMapping("/upload")
public ResponseEntity<List<String>> uploadFiles(@RequestParam("files") List<MultipartFile> files) {
try {
List<String> filePaths = fileUploadService.saveFiles(files);
return ResponseEntity.status(HttpStatus.OK).body(filePaths);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
그후 서비스에 파일들을 가져오기위해 list하여 풀어서 데이터를 뽑아주면 끝이다 . 간단하죠?
이걸 응용하면 db에는 저장된 경로와 파일명이 받아지고, 나중에 그경로에서 데이터를 뽑아 다운로드나 출력을 해주면 된다 .
파일을 로컬에다 저장하면 이미지같은 출력을 할때 문제가 생기니 꼭 리눅스 nas환경에 저장해서 쓰길바란다
다운로드 하는부분엔 문제없이 쓸수있다.
응용은 본인의 몫!
반응형
'JAVA > SPRINGBOOT' 카테고리의 다른 글
Apache POI 아파치포이로 엑셀 DB업로드, DB 엑셀저장 (1) | 2024.07.23 |
---|---|
Spring의 JsonWebToken(JWT)로 안전하게 회원관리하기!! (0) | 2024.01.17 |
10月-JAVA(JDBC) 와 REACT를 활용한 미니프로젝트 -(백엔드편) (0) | 2024.01.11 |
9月 - JDBC 을 활용한 DB관리 미니프로젝트 연습 (0) | 2024.01.11 |