개발은 하는건가..

[Springboot] 파일 다운로드 본문

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();
    }
Comments