본문 바로가기
CLASS/SPRINGBOOT

#10-3 / Ajax로 이미지 전송 및 JPA => 삭제

by hingu 2024. 8. 29.

 👀 ftp에 올린 실제파일 , database 삭제  

- cdn_repo.java (interface)

public interface cdn_repo extends JpaRepository<cdn_dto, Integer>{
	@Query("select now()")
	String mysql_times();
	
        //insert때 쓴거
	List<cdn_dto> findByImgnameLikeOrderByIdxDesc(String imgname);
}

 

- Controller

@Autowired
cdn_repo cdn_repo;

@GetMapping("/cdn_del/{filenm}")
public String cdn_file_delete(@PathVariable String filenm) {
    FTPClient ftp = new FTPClient();
    ftp.setControlEncoding("utf-8");
    FTPClientConfig fc = new FTPClientConfig();
    try {
        String host = "172.30.1.16"; //CDN 서버 주소
        String user = "admin"; //FTP 접속 ID
        String pass = "123123"; //FTP 접속 password
        int port = 20021; //FTP 접속 port
        ftp.configure(fc); 
        ftp.connect(host,port); //FTP 접속 체크

        if(ftp.login(user, pass)) { //FTP 로그인
            //실제 file먼저 지우고 db 삭제
            String ftpurl = "/home/admin/CDN/images/cdn_upload_seeun/"; //FTP 절대 경로
            List<cdn_dto> origin = cdn_repo.findByImgnameLikeOrderByIdxDesc(filenm+"%");

            //deleteFile : FTP 에 있는 파일을 삭제할 때 사용하는 메소드
            boolean del_ok = ftp.deleteFile(ftpurl+origin.get(0).getImgname());
            if(del_ok == true) {
                //delete : 일반속성 / deleteById : primary key
                cdn_repo.deleteById(origin.get(0).getIdx()); //database 삭제
                System.out.println("file 삭제 완료");
            }else {
                System.out.println("file을 찾을 수 없습니다.");
            }
        }else {
            System.out.println("FTP 아이디 및 패스워드 오류발생");
        }
    }catch(Exception e) {
        System.out.println("FTP 접속 오류!");
    }

    return null;
}

http://localhost:8081/cdn_del/11  접속시 삭제됨

=> like / finenm + "%" 로 작성해서 해당 파일명만 적어도 삭제됨니당

 

deleteFile :

FTP 에 있는 파일을 삭제할 때 사용하는 메소드

 

db 삭제시 주의 

delete : 일반속성 / deleteById : primary key

 

연결해제 필수

ftp.disconnect();

 

====> 우왕 둘다 삭제됨

 

'CLASS > SPRINGBOOT' 카테고리의 다른 글

#1-1 / 🌸 Gradle Project start + Oracle  (0) 2024.08.30
#11-1 / websocket - socket 통신  (0) 2024.08.29
#10-2 / Ajax로 이미지 전송 및 JPA  (0) 2024.08.28
#10-1 / CDN 이미지  (0) 2024.08.28
#9-3 / CDN FTP 파일 업로드 사용법  (0) 2024.08.27