본문 바로가기
JAVA

[JAVA] 파일 업로드 간단하게 구현

by 승븐지 2025. 4. 21.
반응형
Controller에서 Excel Upload를 간단하게 구현해보았다. 아주쉽다. 
SpringBoot + Swagger(테스트)

 

 

우선은 file-upload-dir 이라고 Application.yml에 선언을 해줬따 . 경로를 지정해주는 것이다. 

 

#파일 저장 위치
file.upload-dir=C:/upload/

 

이후 컨트롤러에서 @Value 를 선언해줬다.

@Value("${file.upload-dir}")
private String uploadDir;

 

 

 

@Operation(summary = "파일 업로드 API", description = "파일 업로드")
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<List<String>> saveFileList(@RequestParam("files") List<MultipartFile> files) throws IOException {
    List<String> fileNames = new ArrayList<>();
    for (MultipartFile file : files) {
        String originalName = Objects.requireNonNull(file.getOriginalFilename());
        Path filePath = Paths.get(uploadDir, originalName);

        // 동일 파일명이 존재할 경우 덮어쓰기 방지 로직을 추가하고 싶다면 여기에 예외처리 가능
        Files.copy(file.getInputStream(), filePath, StandardCopyOption.REPLACE_EXISTING); // 덮어쓰기 허용 or 옵션 수정 가능

        fileNames.add(originalName);
    }
    return ResponseEntity.ok(fileNames);
}

 

multipart/form-data란?
multipart/form-data는 HTTP 요청에서 파일이나 바이너리 데이터를 함께 전송할 때 사용하는 인코딩 형식이다.
@RequestParam("files") List<MultipartFile> 을 받기 위해서는 요청 본문이 이 형식이어야만 한다.

 

아래는 테스트 결과입니다 .

 

 

간단하게 알아보았지만 여기서 보안문제 , 예외처리, 파일명 검증등에 로직들은 각자 잘 체크해보면 좋을거같다. 

다음에는 다운로드 , 삭제에 대한 API를 알아보것다,.

 

 

파일 다운로드, 삭제 

https://ycds.tistory.com/63

 

[JAVA] 파일 삭제 간단하게 구현

Contoller에서 파일 삭제를 간단하게 구현해봤다. 아주쉽다. SpringBoot + Swagger(테스트) 우선은 file-upload-dir 이라고 Application.yml에 선언을 해줬따 . 경로를 지정해주는 것이다#파일 저장 위치file.upload-di

ycds.tistory.com

https://ycds.tistory.com/64

 

[JAVA] 파일 다운로드 API 간단하게 구현 + Front End 다운로드 기능 까지.

Contoller에서 파일 삭제를 간단하게 구현해봤다. 아주쉽다. SpringBoot + Swagger(테스트) 우선은 file-upload-dir 이라고 Application.yml에 선언을 해줬따 . 경로를 지정해주는 것이다#파일 저장 위치file.upload-di

ycds.tistory.com

 

반응형