ftp 操作类

  • 2018-11-15 10:12
  • PHP二次开发
  • 阅读(2481)
  • 评论(62
  • 来源:互联网
  • 摘要: class FTP{ public $off; // 返回操作状态(成功/失败) public $conn_id; // FTP连接 /** * 方法:FTP连接 * @FTP_HOST -- FTP主机 * @FTP_PORT -- 端口 * @FTP_USER -- 用户名 * @FTP_PASS -- 密码 */ const FTP_HOS ...
    class FTP
    {
    public $off; // 返回操作状态(成功/失败)
    public $conn_id; // FTP连接
    /**
    * 方法:FTP连接
    * @FTP_HOST -- FTP主机
    * @FTP_PORT -- 端口
    * @FTP_USER -- 用户名
    * @FTP_PASS -- 密码
    */
    const FTP_HOST='www.php2.cc';
    const FTP_PORT='21';
    const FTP_USER='admin';
    const FTP_PASS='123456';

    function __construct()
    {
    $this->conn_id = @ftp_connect(self::FTP_HOST,self::FTP_PORT) or die("FTP服务器连接失败");
    @ftp_login($this->conn_id,self::FTP_USER,self::FTP_PASS) or die("FTP服务器登陆失败");
    @ftp_pasv($this->conn_id,1); // 打开被动模拟
    }
    /**
    * 方法:上传文件
    * @path -- 本地路径
    * @newpath -- 上传路径
    * @type -- 若目标目录不存在则新建
    */
    function up_file($path,$newpath,$type=true)
    {
    if($type) $this->dir_mkdirs($newpath);
    $this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
    if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";
    }
    /**
    * 方法:移动文件
    * @path -- 原路径
    * @newpath -- 新路径
    * @type -- 若目标目录不存在则新建
    */
    function move_file($path,$newpath,$type=true)
    {
    if($type) $this->dir_mkdirs($newpath);
    $this->off = @ftp_rename($this->conn_id,$path,$newpath);
    if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";
    }
    /**
    * 方法:复制文件
    * 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径
    * @path -- 原路径
    * @newpath -- 新路径
    * @type -- 若目标目录不存在则新建
    */
    function copy_file($path,$newpath,$type=true)
    {
    $downpath = tempnam(getcwd()."/", "tmp_"); // 创建唯一的临时文件
    $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载
    if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
    $this->up_file($downpath,$newpath,$type);
    unlink($downpath); // 删除临时文件
    }
    /**
    * 方法:删除文件
    * @path -- 路径
    */
    function del_file($path)
    {
    $this->off = @ftp_delete($this->conn_id,$path);
    return $this->off;
    }
    /**
    * 方法:生成目录
    * @path -- 路径
    */
    function dir_mkdirs($path)
    {
    $path_arr = explode('/',$path); // 取目录数组
    $file_name = array_pop($path_arr); // 弹出文件名
    $path_div = count($path_arr); // 取层数
    foreach($path_arr as $val) // 创建目录
    {
    if(@ftp_chdir($this->conn_id,$val) == FALSE)
    {
    $tmp = @ftp_mkdir($this->conn_id,$val);
    if($tmp == FALSE)
    {
    echo "目录创建失败,请检查权限及路径是否正确!";
    exit;
    }
    @ftp_chdir($this->conn_id,$val);
    }
    }
    for($i=1;$i<=$path_div;$i++) // 回退到根
    {
    @ftp_cdup($this->conn_id);
    }
    }

    /*
    * 文件下载
    */
    function download($select_file)
    {
    $file = explode('/',$select_file);
    $file = end($file);
    $tmpfile = tempnam(getcwd()."/", ""); // 创建唯一的临时文件
    $tmpfile = $tmpfile.$file;
    if(ftp_get($this->conn_id, $tmpfile, $select_file, FTP_BINARY)) { // 下载指定的文件到临时文件
    $this->close(); // 关闭连接
    }
    return $tmpfile;
    }

    /**
    * 方法:关闭FTP连接
    */
    function close()
    {
    @ftp_close($this->conn_id);
    }
    }

    调用方式:
    //ftp 下载
    $file_path = "/img/test.jpg"
    $ftp = new FTP();
    $tmp_file = $ftp->download($file_path);


    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-2696-1.html

    相关阅读

    发表评论

    最新评论

    引用 招投标   2020-11-20 16:20
    文章非常好,学到了精髓。
    引用 无忧兄弟   2020-11-19 13:51
    学习了
    引用 下拉通   2020-9-29 14:21
    用这个能开发ftp工具了
    引用 一条鱼   2020-9-24 08:37
    欢迎回访,留言必回踩
    引用 office   2020-8-14 11:05
    支持原创。不错
    引用 网赚自媒体   2020-7-28 11:25
    厉害
    引用 大咖资源网   2020-7-18 14:13
    感谢分享,文章写得不错
    引用 洋得意网络   2020-7-17 11:31
    换链接么
    引用 csb蓄电池   2020-6-30 16:15
    支持原创,加油。
    引用 PHP二次开发   2020-6-23 10:05
    叶子来啦: 博主https凉了
    刚更新了证书,感谢提醒。
    引用 叶子来啦   2020-6-18 16:12
    博主https凉了
    引用 资源网   2020-6-14 16:32
    文章不错哦
    引用 体育场围网   2020-5-22 17:16
    非常实用哇,马上试试。
    引用 赚钱网   2020-5-3 22:41
    感谢分享
    引用 今日新闻   2020-4-22 21:57
    文章非常好超喜欢
    引用 月色惠资源网   2020-4-18 21:44
    很牛 内容发的刚好帮助 多谢
    引用 画景面膜   2020-4-5 18:26
    php能开发快排网站吗?
    引用 百度下拉   2020-4-2 14:13
    ftp一直在用的
    引用 兴化人才网   2020-3-24 17:30
    ftp 操作类 这个之前还真不会!现在学习了
    引用 热搜   2020-3-15 21:31
    文章非常好超喜欢

    查看全部评论(62)

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!