diff --git a/pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java b/pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java index 5bc204f5..751babd4 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/comn/file/controller/ComnFileController.java @@ -27,21 +27,45 @@ public class ComnFileController { private final ComnFileService comnFileService; + /** + * 사용 안함[@Deprecated] + * 파일일련번호[fileSno]로 파일 다운로드 하는 기능. + * QueryParam 방식으로 parameter를 받음. + * @param fileSno + */ @Deprecated @GetMapping("/download") public void downloadPDF(int fileSno) { try { - comnFileService.fileDownload(fileSno); + comnFileService.fileDownload(fileSno); // 파일 일련번호[fileSno]로 파일 다운로드하는 기능 } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악함 + */ log.error("ERROR: ", e); } } + /** + * 파일일련번호[fileSno]로 파일 다운로드 하는 기능. + * @param fileSno + */ @GetMapping("/download/{fileSno}") public void download(@PathVariable("fileSno") int fileSno) { try { comnFileService.fileDownload(fileSno); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악함 + */ log.error("ERROR: ", e); } } diff --git a/pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java b/pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java index 17df0035..301c102c 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java @@ -146,20 +146,19 @@ public class ComnFileService { } /** - * 파일 다운로드 - * + * 파일 일련번호[fileSno]로 파일 다운로드하는 기능. * @param fileSno */ public void fileDownload(int fileSno) { - - ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); + + ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); // 파일정보를 데이터베이스에서 조회함. if (comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); InputStream inputStream = null; OutputStream outputStream = null; try { - File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm()); + File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm()); // 파일경로에 맞춰 파일데이터를 PC에서 가져옴 inputStream = new FileInputStream(pdfFile); String fileOriName = comFileBas.getFileOriNm(); @@ -176,7 +175,8 @@ public class ComnFileService { byte[] buffer = new byte[1024]; //1KB 설정 int length; - while ((length = inputStream.read(buffer)) != -1) { + // 요청한 사용자에게 파일데이터 전송 + while ((length = inputStream.read(buffer)) != -1) { outputStream.write(buffer); } @@ -185,6 +185,7 @@ public class ComnFileService { } catch (IOException e) { e.printStackTrace(); } finally { + // INPUT, OUTPUT의 열어놨던 스트림들을 최종적으로 모두 닫음 try { if (outputStream != null) { Objects.requireNonNull(outputStream).flush();