@GetMapping("/download-ex")
public ResponseEntity<Resource> downloadFile() throws MalformedURLException {
/*
프로젝트 위치에서 찾기
UrlResource resource = new UrlResource("classpath:com/project/abcd.txt);
ResourceLoader, url protocol 관련된 공식 문서
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#resources-resourceloader
*/
//절대 파일 경로로 찾기, 로딩될 파일이 로컬에 위치해 있음
UrlResource resource = new UrlResource("file:" + "/불러올/파일의/절대경로");
//status 200으로 설정
return ResponseEntity.ok()
//header 설정
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=클라이언트에서표시될이름.확장자")
//resource를 바디에 씀
.body(resource);
}
서버는
/download-ex 로 요청받았을때
"불러올" 이라는 directory 밑의 "파일의" 라는 directory의 "절대경로"라는 file을 resource로 지정해서
HttpsStatus 200, filedown header를 만들고 body에 지정한 리소스를 써서 응답을 보냄.
ResourceLoader, url protocol 관련된 공식 문서
[SpringBoot+React+JWT+카카오 로그인] 카카오 로그인 (4) | 2024.08.29 |
---|---|
[SringBooot][Mysql] Mysql에서 유사 Cursor 방식으로 페이징 구현 (0) | 2024.06.22 |
롬복이용해서 코드 간단하게 하기 [Lombok @Builder] [builder pattern 공부하기 - 4] (0) | 2023.06.05 |
Builder Pattern 기초 따라하기 [Lombok @Builder] [builder pattern 공부하기 - 2] (0) | 2023.05.30 |
@Builder 붙은 코드 @Builder 없는 코드와 비교해보기 [Lombok @Builder] [builder pattern 공부하기 - 1] (0) | 2023.05.29 |