PHP中FTP上传文件和下载文件实例代码_PHP教程

php中文网
发布: 2016-07-20 11:11:36
原创
1133人浏览过

php中我们也有可以直接来操作ftp,然后利用php实现与ftp一样的文件上传与下载文件的功能哦,下面我来介绍一个完整的实例。

一、lycftpabstract.class.php   ftp基类

 代码如下 复制代码
    /*  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;
    }
}
?>

 
三、LycException.class.php  异常基类

 代码如下 复制代码
     /*  author:凹凸曼(lyc)
    /*  email: jar-c@163.com
    /*  time : 2011-04-22
    /*  
 
    */
    class Lyc_Exception extends Exception{
 
    }
?>
 


四、LycFtpException.class.php  FTP异常类

 

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 51
查看详情 代码小浣熊

立即学习PHP免费学习笔记(深入)”;

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


五、测试区

 代码如下 复制代码


    /**
    * 上传文件
    *
    */
    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";
        }
 
    }


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444624.htmlTechArticle在php中我们也有可以直接来操作ftp,然后利用php实现与ftp一样的文件上传与下载文件的功能哦,下面我来介绍一个完整的实例。 一、LycFtp...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号