투케이2K

31. (spring/스프링) 로컬 서버에 저장 파일 (file) 포함 여부 확인 및 파일 (file) 삭제 수행 실시 - exists , delete 본문

Spring

31. (spring/스프링) 로컬 서버에 저장 파일 (file) 포함 여부 확인 및 파일 (file) 삭제 수행 실시 - exists , delete

투케이2K 2021. 9. 17. 08:19

[개발 환경 설정]

개발 툴 : inteli j

개발 언어 : spring


[소스코드 : 컨트롤러]

    // [GET 방식 : map]
    // [경로 지정 : http://localhost:7000/deleteFile?file=test.txt]
    // [로직 : 로컬에 파일이 저장되었는지 확인 >> 포함된 경우 파일 삭제 수행 실시]
    @GetMapping("/deleteFile")
    public String deleteFile(@RequestParam Map<String, String> param) {
        System.out.println("\n");
        System.out.println("=======================================");
        System.out.println("[ModuleApiController] : [deleteFile] : [start]");
        System.out.println("[request file] : " + String.valueOf(param.get("file")));
        System.out.println("=======================================");
        System.out.println("\n");

        // 리턴 결과를 반환할 변수 선언 실시
        JSONObject returnJson = null;

        try {
            returnJson = new JSONObject();


            // 시스템 os 정보 확인 변수 선언
            String os = System.getProperty("os.name").toLowerCase();


            // 사진이 저장된 폴더 경로 변수 선언
            String fileRoot = "";


            // os 정보 확인 및 사진이 저장된 서버 로컬 경로 지정 실시
            // 로컬 : Home/Resource/assets 폴더는 이미지 파일을 공통적으로 저장 관리
            if(os.contains("win")) {
                fileRoot = "c:/Home/Resource/assets/"; //윈도우 경로 (디스크 필요)
            }
            else if(os.contains("linux")) {
                fileRoot = "/Home/Resource/assets/"; //리눅스 경로
            }


            // 서버 로컬 경로 + 파일 명 저장 실시
            fileRoot = fileRoot + String.valueOf(param.get("file"));
            System.out.println("\n");
            System.out.println("=======================================");
            System.out.println("[ModuleApiController] : [deleteFile] : [fileRoot]");
            System.out.println("[경로] : " + fileRoot);
            System.out.println("=======================================");
            System.out.println("\n");


            // Resorce를 사용해서 로컬 서버에 저장된 이미지 경로 및 파일 명을 지정
            File resource = new File(fileRoot);


            if(!resource.exists()){ // 로컬 서버에 저장된 파일이 없을 경우
                // 리턴 메시지 삽입 실시
                returnJson.put("state", "F");
                returnJson.put("message", "저장된 파일이 없습니다");
            }
            else { // 로컬 서버에 저장된 파일이 있는 경우

                if(resource.delete()){ // 정상적으로 파일 삭제 수행 된 경우
                    returnJson.put("state", "T");
                    returnJson.put("message", "파일 삭제가 완료되었습니다");
                }
                else { // 정상적으로 파일 삭제가 되지 않은 경우
                    returnJson.put("state", "F");
                    returnJson.put("message", "파일 삭제 수행을 실패하였습니다");
                }

            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("\n");
        System.out.println("=======================================");
        System.out.println("[ModuleApiController] : [deleteFile] : [result]");
        System.out.println("[return] : " + String.valueOf(returnJson.toString()));
        System.out.println("=======================================");
        System.out.println("\n");
        return returnJson.toString();
    }

[결과 출력]


 

반응형
Comments