@GetMapping("/download") public void downloadFile(@RequestParam("fileName") String fileNm, HttpServletResponse response) { // 파라미터를 통해 파일의 정보를 가져와 reponse에 세팅 String fileName = "3.png"; String saveFileName = "c:/tmp/2020/02/07/3.png"; String contentType = "image/png"; int fileLength = 116303; response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";"); response.setHeader("Content-Transfer-Encoding", "binary"); response.setHeader("Content-Type", contentType); response.setHeader("Content-Length", "" + fileLength); response.setHeader("Pragma", "no-cache;"); response.setHeader("Expires", "-1;"); try ( FileInputStream fis = new FileInputStream(saveFileName); OutputStream out = response.getOutputStream();) { int readCount = 0; byte[] buffer = new byte[1024]; while ((readCount = fis.read(buffer)) != -1) { out.write(buffer, 0, readCount); } }catch(Exception ex){ throw new RuntimeException("file Save Error"); } }