본문 바로가기

웹 개발/Spring Boot

SpringBoot) 파일 이름을 파라미터로 파일 다운 받는 GET url 만들기

@GetMapping(value = "editor/{fileName}")
    public void fileDownload(@PathVariable String fileName, HttpServletResponse response) throws IOException{
        response.setContentType("application/octer-stream");
        response.setHeader("Content-Transfer-Encoding", "binary;");
        response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        try {
            OutputStream os = response.getOutputStream();
            FileInputStream fis = new FileInputStream(fileName);
            Integer count = 0;
            byte[] bytes = new byte[512];

            while ((count = fis.read(bytes)) != -1 ) {
                os.write(bytes, 0, count);
            }
            
            fis.close();
            os.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("FileNotFoundException");
        }
    }

 

 

파일 경로는 따로 지정하지 않았는데 위 코드로 하면 다운받으려는 파일이 현재 프로젝트 루트 디렉토리에 있으면 다운로드 된다.