Controller
@GetMapping(value = "<api_url>")
public ResponseEntity<Resource> fileDownloadApi() throws IOException{
return exampleService.fileDownload();
}
Service
...
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.http.CacheControl;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
...
public ResponseEntity<Resource> fileDownload() throws IOException{
Path filePath = Paths.get("<file_path_string>");
InputStreamResource resource = new InputStreamResource(new FileInputStream(filePath.toString()));
String fileName = "<file_name_string>";
logger.info("Success download input excel file : " + filePath);
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.cacheControl(CacheControl.noCache())
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName)
.body(resource);
}
HTML
<a href="<api_url>">다운로드</a>
이렇게하면 다운로드 버튼을 누르면 해당 파일이 바로 다운로드 되는 API 완성!
'웹 개발 > Spring Boot' 카테고리의 다른 글
SpringBoot) ThreadPoolExecutor 기본 개념 (0) | 2022.05.13 |
---|---|
SpringBoot) 스프링부트에서 Resource를 읽는 방법 (0) | 2021.11.11 |
Spring Boot) 여러 포트 사용하기 (멀티 커넥트, 다중 포트) (1) | 2021.10.19 |
Spring Boot) pfx 인증서로 https 적용하기 (0) | 2021.10.19 |
Spring Boot) BCryptPasswordEncoder 사용해서 사용자 비밀번호 암호화하기 (0) | 2021.10.08 |