From ac79263ab5f9b2f03ca25c69f1bd4adf5897783c Mon Sep 17 00:00:00 2001 From: hjjeong Date: Tue, 18 Nov 2025 10:47:13 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Fix:=20=ED=8C=8C=EC=9D=BC=20=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EA=B5=AC=EB=B6=84=EC=9E=90=EB=A5=BC=20OS=20?= =?UTF-8?q?=EB=8F=85=EB=A6=BD=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Windows 경로 구분자(\)를 File 생성자로 변경 - CSV/Excel 파일 업로드 시 Linux/Mac 환경에서 FileNotFoundException 해결 - new File(path, fileName) 사용으로 크로스 플랫폼 호환성 확보 --- src/com/pms/service/PartMngService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/pms/service/PartMngService.java b/src/com/pms/service/PartMngService.java index 6d983d9..a607bb1 100644 --- a/src/com/pms/service/PartMngService.java +++ b/src/com/pms/service/PartMngService.java @@ -3212,7 +3212,8 @@ public class PartMngService extends BaseService { BufferedReader br = null; try { - File csvFile = new File(path + "\\" + fileName); + // OS에 관계없이 올바른 경로 생성 + File csvFile = new File(path, fileName); // 인코딩 자동 감지: UTF-8 → CP949 → EUC-KR 순서로 시도 String detectedEncoding = detectFileEncoding(csvFile); @@ -3589,8 +3590,9 @@ public class PartMngService extends BaseService { return resultList; } - // Excel 파일인 경우 - FileInputStream fis = new FileInputStream(path+"\\"+fileName); + // Excel 파일인 경우 - OS에 관계없이 올바른 경로 생성 + File excelFile = new File(path, fileName); + FileInputStream fis = new FileInputStream(excelFile); Workbook workBook = null; if (fileName.endsWith(".xls") || fileName.endsWith(".XLS")) { From 2e79be61706e59f5d54446e1bf29c8d8c998ad90 Mon Sep 17 00:00:00 2001 From: hjjeong Date: Tue, 18 Nov 2025 11:11:17 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=EC=9E=90=20=EC=88=98=EC=A0=95(=ED=8C=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=97=91=EC=85=80=20=EC=97=85=EB=A1=9C=EB=93=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/pms/service/PartMngService.java | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/com/pms/service/PartMngService.java b/src/com/pms/service/PartMngService.java index a607bb1..996f81c 100644 --- a/src/com/pms/service/PartMngService.java +++ b/src/com/pms/service/PartMngService.java @@ -1793,7 +1793,9 @@ public class PartMngService extends BaseService { String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); - FileInputStream fis = new FileInputStream(path+"\\"+fileName); + // OS에 관계없이 올바른 경로 생성 + File excelFile = new File(path, fileName); + FileInputStream fis = new FileInputStream(excelFile); XSSFWorkbook workBook = new XSSFWorkbook(fis); XSSFSheet sheet = workBook.getSheetAt(0); HashMap partMap = new HashMap(); @@ -2786,7 +2788,10 @@ public class PartMngService extends BaseService { HashMap fileMap = (HashMap)fileList.get(0); String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); - FileInputStream fis = new FileInputStream(path+"\\"+fileName); + + // OS에 관계없이 올바른 경로 생성 + File excelFile = new File(path, fileName); + FileInputStream fis = new FileInputStream(excelFile); //XSSFWorkbook workBook = new XSSFWorkbook(fis); //FormulaEvaluator formulaEval = workBook.getCreationHelper().createFormulaEvaluator(); //XSSFSheet sheet = workBook.getSheetAt(0); @@ -3807,13 +3812,15 @@ public class PartMngService extends BaseService { System.out.println("projectNo:"+projectNo); if(null != fileList && 1 == fileList.size()){ HashMap fileMap = (HashMap)fileList.get(0); - - String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); - String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); + + String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); + String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); //boolean isLoggingBoolean = false; - FileInputStream fis = new FileInputStream(path+"\\"+fileName); + // OS에 관계없이 올바른 경로 생성 + File excelFile = new File(path, fileName); + FileInputStream fis = new FileInputStream(excelFile); //XSSFWorkbook workBook = new XSSFWorkbook(fis); //FormulaEvaluator formulaEval = workBook.getCreationHelper().createFormulaEvaluator(); //XSSFSheet sheet = workBook.getSheetAt(0); @@ -4164,7 +4171,9 @@ public class PartMngService extends BaseService { String path = CommonUtils.checkNull(fileMap.get("FILE_PATH")); String fileName = CommonUtils.checkNull(fileMap.get("SAVED_FILE_NAME")); - FileInputStream fis = new FileInputStream(path+"\\"+fileName); + // OS에 관계없이 올바른 경로 생성 + File excelFile = new File(path, fileName); + FileInputStream fis = new FileInputStream(excelFile); Workbook workBook = null; if (fileName.endsWith(".xls") || fileName.endsWith(".XLS")) {