[스프링] 파일 다운로드 처리 방법
파일 다운로드는 웹 애플리케이션에서 자주 사용되는 기능 중 하나입니다. 스프링 프레임워크를 사용하여 파일 다운로드를 처리하는 방법에 대해 알아봅시다.
1. 컨트롤러에서 파일 다운로드 처리하기
먼저, 스프링 MVC 컨트롤러에서 파일 다운로드를 처리하는 방법을 확인해야 합니다. 컨트롤러 메서드에서 ResponseEntity
를 사용하여 파일을 다운로드할 수 있습니다.
아래는 파일을 다운로드하는 컨트롤러 메서드의 예시입니다.
@GetMapping("/downloadFile")
public ResponseEntity<Resource> downloadFile() {
Resource file = fileStorageService.loadFileAsResource("example.txt");
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
.body(file);
}
2. 파일 서비스에서 리소스 로드하기
위 예제에서 사용된 fileStorageService
는 파일을 로드하기 위한 서비스입니다. 이 서비스를 구현하여 파일을 읽고 Resource
객체로 반환해야 합니다.
@Service
public class FileStorageService {
public Resource loadFileAsResource(String fileName) {
// 파일 로드 및 Resource 반환 로직 구현
}
}
3. 웹 구성 설정
마지막으로, 웹 구성에서 컨텐츠 유형 및 크기에 대한 설정을 확인해야 합니다. WebMvcConfigurer
를 구현하거나 WebMvcConfigurerAdapter
를 확장하여 MIME 유형 및 파일 크기를 설정할 수 있습니다.
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
결론
이제 스프링을 사용하여 파일 다운로드를 처리하는 방법에 대해 알아보았습니다. 컨트롤러에서 ResponseEntity
를 반환하고 파일을 로드하기 위한 서비스를 구현하며, 마지막으로 웹 구성에서 필요한 설정을 완료하면 됩니다.
이를 통해 스프링 기반 애플리케이션에서 파일 다운로드를 쉽게 처리할 수 있습니다.