FileService.java
@Service("fileService")
public class FileService {
...
/**
* resources/{폴더 이름} 에 저장되어 있는 파일 다운로드
* @param fileName,dirName
* @return ResponseEntity<Resource>
*/
public ResponseEntity<Resource> downloadResourceFile(String fileName, String dirName) throws IOException{
Path filePath = Paths.get(File.separatorChar + dirName, File.separatorChar + fileName);
Resource resource = new InputStreamResource(getClass().getResourceAsStream(filePath.toString()));
logger.info("Success download file in resources directory : " + filePath);
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.cacheControl(CacheControl.noCache())
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName + "")
.body(resource);
}
...
}
FileController.java
@Controller
@RestController
public class FileController {
@Autowired
FileService fileService;
...
@GetMapping(value = "resource-file-download/{fileName}/{dirName}")
public ResponseEntity<Resource> resourceFileDownload(@PathVariable String fileName, @PathVariable String dirName) throws IOException{
return fileService.downloadResourceFile(fileName, dirName);
}
}
** resource/dirName/fileName 이렇게 된 상황!
'웹 개발 > Spring Boot' 카테고리의 다른 글
Spring Boot) pfx 인증서로 https 적용하기 (0) | 2021.10.19 |
---|---|
Spring Boot) BCryptPasswordEncoder 사용해서 사용자 비밀번호 암호화하기 (0) | 2021.10.08 |
Spring Boot) MaxUploadSizeExceededException 서버 업로드 파일 최대 용량 설정 (0) | 2021.08.24 |
Spring Boot) resource에 저장된 파일 다운로드 (JAR 파일에서도 접근 가능) (0) | 2021.07.21 |
Spring Boot) properties 파일로 변수 주입받아 사용하기 (profile 활용) (0) | 2021.07.16 |