[스프링] 파일 업로드 처리

이번 포스트에서는 스프링 프레임워크를 사용하여 파일 업로드를 처리하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, Maven을 사용하는 경우 pom.xml에 아래 의존성을 추가합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

2. 파일 업로드 폼 생성

HTML 폼에서 파일을 업로드하려면 <form> 요소에 enctype 속성을 추가하여 multipart/form-data로 설정해야 합니다.

<form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file" />
    <button type="submit">업로드</button>
</form>

3. 컨트롤러 작성

스프링의 @RequestParam 어노테이션을 사용하여 파일을 컨트롤러로 전달받을 수 있습니다. 다음은 파일을 업로드 받아 처리하는 예제입니다.

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;

@RestController
public class FileUploadController {
    @PostMapping("/upload")
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        // 파일 처리 로직 구현
        // file.getBytes();
        // file.transferTo(new File("경로/파일명"));
        return "파일이 성공적으로 업로드되었습니다.";
    }
}

4. 파일 처리

MultipartFile 객체를 사용하여 파일을 저장하거나 처리할 수 있습니다. getBytes() 메서드를 사용하여 파일 내용을 바이트 배열로 얻을 수 있으며, transferTo() 메서드를 사용하여 지정된 경로에 파일을 저장할 수 있습니다.

5. 완료

이제 파일 업로드에 대한 스프링 처리가 완료되었습니다. 파일 업로드 기능을 테스트하여 원활하게 작동하는지 확인해보세요!

참고 자료