Skip to content
조회 수 32766 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

PHP로 FTP 접속 / 업로드 / 다운로드 등의 컨트롤 소스

PHPSCHOOL의  pspn님이 쓴 글입니다.

처음 으로 클래스라는 것을 만들어 보았습니다.
처음 만든거라 문법이라든지 효율성 기타 여러가지 이상한 부분이 많을 거라 생각이 들어
여러분들의 도움을 얻고자 올립니다. 수정할 부분과 많은 조언 부탁드립니다.
이상하게 만들었다 욕하지 마시고 도움을 부탁드립니다. 감사합니다.

class Ftp_control {
    //멤버 변수 선언 부
    var $FHost;                    #접속 HOST
    var $FUser;                    #접속 ID
    var $FPasswd;                #접속 패스워드
    var $Server_port = "21";    #FTP 포터
    var $Fconnect;                #FTP stream
    var $local_file;
    var $remote_file;
    var $del_file;
    var $del_dir;
    var $make_dir;
    var $dir_per;
    var $read_dir;
    var $file_list = array();
    function Ftp_control($FHost,$FUser,$FPasswd,$Server_port) {
        if(!$FHost || !$FUser || !$FPasswd || !$FPasswd) {
            $msg = "Connect Infomation Fail";
            $this -> setError($msg);
        }
        else {
            if(!($connect = ftp_connect($FHost, $server_port))) $this -> setError("NO Search HOST"); 
            if(!ftp_login($connect, $FUser, $FPasswd)) $this -> setError("Login Information Not agree");
            $this->Fconnect = $connect;
        }
    }

    function upload_file() {
        $fp = $this->Fconnect;
        $ref = $this->remote_file;
        $lof = $this->local_file;
        
        if(!$fp || !$ref || !$lof) $this -> setError("업로드할 파일 정보가 전송되지 않았습니다. ");
        if(!ftp_put($fp,$ref ,$lof ,FTP_BINARY )) $this -> setError("FTP 파일전송중 에러가 발생 했습니다.");
    }

    function download_file() {
        $fp = $this -> Fconnect;
        $ref = $this -> remote_file;
        $lof = $this -> local_file;
        if(!ftp_get($fp,$lof,$ref,FTP_BINARY)) $this -> setError("FTP 파일다운로드중 에러가 발생 했습니다");
    }
    
    function delete_file() {
        $fp = $this -> Fconnect;
        $del = $this -> del_file;
        if(!$fp || !$del) $this -> setError("삭제할 파일 정보가 전송되지 않았습니다.");
        if(!ftp_delete($fp,$del)) $this -> setError("파일삭제중 오류가 발생 했습니다.");
    }
    
    function delete_dir() {
        $fp = $this -> Fconnect;
        
        //$fdir = $this -> del_dir;
        //if(!($dfileList = ftp_nlist($fp,$fdir))) $this -> setError("삭제할 디렉토리가 존재 하지 않습니다.");
        $this -> file_directory();
        $dfileList = $this -> file_list;
        while(list($k,$v) = each($dfileList)) {
            if(!ftp_delete($fp,$v)) $this -> setError("디렉토리 파일 삭제 오류");
        }
        if(!ftp_rmdir($fp,$fdir)) $this -> setError("디렉토리 삭제 오류");
    }

    function make_directory() {
        $fp = $this -> Fconnect;
        $mdir = $this -> make_dir;
        $per = $this -> dir_per;
        if(!ftp_mkdir($fp,$mdir)) $this -> setError("디렉토리 생성 오류");
        //if(!ftp_site($fp, "chown nobody.nobody $mdir")) $this -> setError("소유권 변경 오류");
        if(!ftp_site($fp, "chmod $per $mdir")) $this -> setError("퍼미션 변경 오류");
    }
    
    function file_directory() {
        $fp = $this -> Fconnect;
        $rdir = $this -> read_dir;
        if(!($dfileList = ftp_nlist($fp,$rdir))) $this -> setError("디렉토리 출력 오류");
        $this -> file_list = $dfileList;
    }

    function closeFtp() {
        ftp_quit($this->Fconnect);
    }

    function setError($msg) {
        echo "FTP Error : ".$msg."<br>";
        exit;
    }
}




로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
877 컴퓨터잡담 다른 윈도우 창 프로그램 제어 1 2009.12.03 37786
876 AutoHotKey ahk) autohotkey 엑셀(Excel)에서 행값 증가시키기 2013.10.30 37416
875 파이썬 DiffusionWrapper has 859.52 M params. 2023.04.21 37394
874 AutoHotKey Autohotkey) Find WM_COMMAND parameter with Winspector 17 2012.02.22 35869
873 컴퓨터잡담 자바스크립트/CSS 트리를 이용한 예제 프로그램 쉽게만들기 2 2009.06.30 35635
872 컴퓨터잡담 .htaccess와 워터마킹을 이용한 이미지 링크 방지 2009.06.30 34918
871 AutoHotKey autohotkey) Virus? 6 2011.12.31 34679
870 AutoHotKey ahk) autohotkey 글자 자르기 방법 2013.10.30 34672
869 컴퓨터잡담 IPTIME N904 모델에서 멀티캐스트 프로토콜(IGMP) 설정하는 방법 file 2013.10.08 34274
868 컴퓨터잡담 옵티머스G 배터리 일체형은 절대 비추천합니다. 21 5 file 2012.09.18 34148
867 컴퓨터잡담 TIME_WAIT 줄이기(소켓이 부족하여 프로세스 강제중단을 막기위해) 4 2009.11.30 34111
866 AutoHotKey autohotkey) 오토핫키에서 자주쓰는 함수모음 2013.10.30 33685
865 컴퓨터잡담 네이버 많이 본 뉴스 PHP로 RSS 출력 만들기 1 file 2009.08.05 33674
864 AutoHotKey autohotkey) 30분마다 자동으로 디스크 정리하기 file 2013.07.31 33070
863 Visual C++ C# - etrade api site 게시물 1 2013.02.20 32889
862 컴퓨터잡담 CURL 을 이용한 GET/POST 값 넘기기 3 2009.06.30 32810
» 컴퓨터잡담 PHP로 FTP 접속 / 업로드 / 다운로드 등의 컨트롤 소스 2 3 2009.10.20 32766
860 컴퓨터잡담 특정 파일을 제외한 현재 디렉토리 내의 모든 파일을 삭제하는 배치파일 2022.07.14 32730
859 컴퓨터잡담 현재 쿠키,세션 값 전부 보기 2009.06.30 32613
858 AutoHotKey ahk) 열려진 엑셀창의 값 불러오기 1 2013.10.30 32529
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소