SpringBoot , Thymeleaf
[Springboot] 파일 다운로드
수동애비
2023. 1. 30. 17:39
반응형
파일 다운로드 예)
@GetMapping({"/api/photo/download"})
public void photoDownload(@RequestParam(required = false, defaultValue = "0") int paramKey,
HttpServletResponse response) throws IOException {
if (paramKey == 0) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
File photoFile = new File("파일경로/" + paramKey + ".jpg" );
if (photoFile.exists() == false) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
InputStream is = Files.newInputStream(photoFile.toPath());
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("image/jpeg");
response.setHeader("Content-Disposition", "attachment; fileName=\"" + URLEncoder.encode("img_" + paramKey + ".jpg", "UTF-8") + "\";");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Length", String.valueOf(Files.size(photoFile.toPath())));
is.transferTo(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
is.close();
}