Home > Backend Development > PHP Tutorial > FTP upload file and download file example code in PHP_PHP tutorial

FTP upload file and download file example code in PHP_PHP tutorial

WBOY
Release: 2016-07-20 11:11:36
Original
1018 people have browsed it

In php, we can also directly operate ftp, and then use php to achieve the same file upload and download functions as ftp. Let me introduce a complete example below.

1. LycFtpAbstract.class.php FTP base class

 代码如下 复制代码
/* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
*/

abstract class Lyc_Ftp_Abstract {

protected $ftpobj=null;
protected $host='';
protected $user='anonymous';
protected $pwd='';
protected $mode=FTP_BINARY;
protected $port=21;
protected $timeout=90;

protected $pasv=TRUE;

protected function init(){

}
/**
* 建立ftp连接
*
*/
protected function connect(){
$this->ftpobj=@ftp_connect($this->host,$this->port,$this->timeout);
       if(null==$this->ftpobj){
        require_once 'Lyc/Ftp/Exception.class.php';
       throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't connect to $this->host");
       }
    }
    /**
    * 建立ssl ftp连接
    *
    */
    protected function connectSsl(){
       $ftpobj=@ftp_ssl_connect($this->host,$this->port,$this->timeout);
       if(null==$ftpobj){
        require_once 'Lyc/Ftp/Exception.class.php';
       throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't connect to $this->host");
       }
    }
    /**
    * 登录验证ftp 及设置模式
    *
    */
    protected function login(){
 
        if(@ftp_login($this->ftpobj,$this->user,$this->pwd)){
            ftp_pasv($this->ftpobj,$pasv);
 
        }else{
            require_once 'Lyc/Ftp/Exception.class.php';
            throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't login to $this->host");
        }
    }
    /**
    * 上传文件
    *
    */
    public function upload($remotefile,$localfile){
 
    }
    /**
    * 下载文件
    *
    */
    public function download($localfile,$remotefile){
 
    }
    /**
    * 关闭连接
    *
    */
    public function close(){
        if(is_string($this->ftpobj)){
            ftp_close($this->ftpobj);
        }
    }
 
}
?>

 
 
二、LycFtpFtp.class.php   实现类

 代码如下 复制代码
 
代码如下 复制代码
/* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
/*
*/
require_once 'Lyc/Ftp/Abstract.class.php';
class Lyc_Ftp_Ftp extends Lyc_Ftp_Abstract{

public function __construct($host,$user,$pwd,$mode=FTP_BINARY,$port=21,$timeout=90,$pasv=TRUE){
$this->host=$host;
        $this->user=$user;
        $this->pwd=$pwd;
        $this->mode=$mode;
        $this->port=$port;
        $this->timeout=$timeout;
        $this->pasv=$pasv;
        $this->init();
 
    }
    protected function init(){
 
            $this->connect();
            $this->login();
 
    }
    /**
    * 上传文件
    *
    */
    public function upload($remotefile,$localfile){
 
       $res=ftp_nb_put($this->ftpobj,$remotefile,$localfile,$this->mode,ftp_size($this->ftpobj,$remotefile));
       while($res==FTP_MOREDATA){
           $res=ftp_nb_continue($this->ftpobj);
       }
       if($res!=FTP_FINISHED){
           return FALSE;
       }
       return TRUE;
    }
    /**
    * 下载文件
    *
    */
    public function download($localfile,$remotefile){
        ftp_set_option($this->ftpobj,FTP_AUTOSEEK,FALSE);
        $res=ftp_nb_get($this->ftpobj,$localfile,$remotefile,$this->mode,ftp_size($this->ftpobj,$localfile));
        while($res==FTP_MOREDATA){
            $res=ftp_nb_continue($this->ftpobj);
        }
        if($res!=FTP_FINISHED){
            return FALSE;
        }
        return TRUE;
    }
}
?>
    /*  author:凹凸曼(lyc)

    /*  email: jar-c@163.com
    /*  time : 2011-04-22

    /*
 代码如下 复制代码
  /* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
/*

*/
class Lyc_Exception extends Exception{

}
?>
 
    */require_once 'Lyc/Ftp/Abstract.class.php'; class Lyc_Ftp_Ftp extends Lyc_Ftp_Abstract{       public function __construct($host,$user,$pwd,$mode=FTP_BINARY,$port=21,$timeout=90,$pasv=TRUE){         $this->host=$host;         $this->user=$user;         $this->pwd=$pwd;         $this->mode=$mode;         $this->port=$port;         $this->timeout=$timeout;         $this->pasv=$pasv;         $this->init();       }     protected function init(){               $this->connect();             $this->login();       }     /** * Upload file * */    public function upload($remotefile,$localfile){          $res=ftp_nb_put($this->ftpobj,$remotefile,$localfile,$this->mode,ftp_size($this->ftpobj,$remotefile));        while($res==FTP_MOREDATA){            $res=ftp_nb_continue($this->ftpobj);        }        if($res!=FTP_FINISHED){            return FALSE;        }        return TRUE;     }     /** * Download file * */    public function download($localfile,$remotefile){         ftp_set_option($this->ftpobj,FTP_AUTOSEEK,FALSE);         $res=ftp_nb_get($this->ftpobj,$localfile,$remotefile,$this->mode,ftp_size($this->ftpobj,$localfile));         while($res==FTP_MOREDATA){             $res=ftp_nb_continue($this->ftpobj);         }         if($res!=FTP_FINISHED){             return FALSE;         }         return TRUE;     } } ?>  三、LycException.class.php  异常基类
 代码如下 复制代码
     /*  author:凹凸曼(lyc) <🎜>    /*  email: jar-c@163.com <🎜>    /*  time : 2011-04-22 <🎜>    /*   <🎜>  <🎜>    */<🎜>    class Lyc_Exception extends Exception{ <🎜>  <🎜>    } <🎜>?> 


4. LycFtpException.class.php FTP exception class

The code is as follows
 代码如下 复制代码
  /* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
*/
require_once 'Lyc/Exception.class.php';
class Lyc_Ftp_Exception extends Lyc_Exception{

}
?>
 
Copy code


/* author: convex man (lyc)
代码如下 复制代码


/**
* 上传文件
*
*/
public function uploadTest(){
require_once 'Lyc/Ftp/Ftp.class.php';
$host=23.64.41.13'; //主机
$user='tguser'; //用户名
$pwd=""; //密码 端口默认21 也可改
$ftp=new Lyc_Ftp_Ftp($host,$user,$pwd);
$res=$ftp->upload('test.rar',"F:wwwroottestareaLycTesttest.rar");
        if(!$res){
            echo " upload failure";
        }
 
    }
 
    public function downloadTest(){
        require_once 'Lyc/Ftp/Ftp.class.php';
        $host=33.64.41.135';
        $user='tguser';
        $pwd="";
        $ftp=new Lyc_Ftp_Ftp($host,$user,$pwd);
        $res=$ftp->download("c:test.rar","test.rar");
        if(!$res){
            echo "download failure";
        }
 
    }

/* email: jar -c@163.com /* time : 2011-04-22 */require_once 'Lyc/Exception.class.php';
class Lyc_Ftp_Exception extends Lyc_Exception{

}

?> 5. Test area
The code is as follows Copy code
/**

* Upload file *
*/
public function uploadTest(){ <🎜> require_once 'Lyc/Ftp/Ftp.class.php'; <🎜> $host=23.64.41.13'; //Host<🎜> $user= 'tguser';                                                                                                                                                                                             ; 🎜> $res =$ftp->upload('test.rar',"F:wwwroottestareaLycTesttest.rar"); If(!$res){ 🎜> } public function downloadTest(){ require_once 'Lyc/Ftp/Ftp.class.php'; $host=33.64.41.135'; $user='tguser '; $pwd=""; $ftp=new Lyc_Ftp_Ftp($host,$user,$pwd); $res=$ftp->download("c:test.rar" ,"test.rar");                                                                                   http://www.bkjia.com/PHPjc/444624.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444624.htmlTechArticleIn php we can also directly operate ftp, and then use php to achieve the same file upload and download as ftp Function, let me introduce a complete example below. 1. LycFtp...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template