`

一个php ftp类(复制、移动、删除文件、创建目录等)

    博客分类:
  • PHP
ftp 
阅读更多
一个不错的ftp操作类,可以完成复制、移动、删除文件、创建目录等操作,有需要的朋友,可以参考下。

本文原始链接:http://www.jbxue.com/article/7669.html

1、ftp类
<?php
/**
* 作用:FTP类( 拷贝、移动、删除文件/创建目录 )
* site http://www.jbxue.com
*/
class class_ftp
{
     public $off; // 返回操作状态(成功/失败)

    public $conn_id; // FTP连接

     /**
      * 方法:FTP连接
      * @FTP_HOST -- FTP主机
      * @FTP_PORT -- 端口
      * @FTP_USER -- 用户名
      * @FTP_PASS -- 密码
      */
    function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
     {
        $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");
         @ftp_login($this->conn_id,$FTP_USER,$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 = "c:/tmp.dat";
        $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载

        if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
        $this->up_file($downpath,$newpath,$type);
     }

    /**
      * 方法:删除文件
      * @path -- 路径
      */
    function del_file($path)
     {
        $this->off = @ftp_delete($this->conn_id,$path);
         if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";
     }

    /**
      * 方法:生成目录
      * @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);
         }
     }

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

}// class class_ftp end
?>


2、调用
<?php
$ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // 打开FTP连接
//$ftp->up_file('aa.txt','a/b/c/cc.txt'); // 上传文件
//$ftp->move_file('a/b/c/cc.txt','a/cc.txt'); // 移动文件
//$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // 复制文件
//$ftp->del_file('a/b/dd.txt'); // 删除文件
$ftp->close(); // 关闭FTP连接
?>
分享到:
评论

相关推荐

    php的FTP操作类( 拷贝、移动、删除文件 创建目录 ).zip

    介绍一个php的FTP操作类,通过ftp服务器登录,上传文件到本地目录,如果目录不存在则重新创建,移动文件,复制文件,删除文件,完成后关闭ftp文件。

    php的FTP操作类( 拷贝、移动、删除文件 创建目录 )

    一个php的FTP操作类,通过ftp服务器登录,上传文件到本地目录,如果目录不存在则重新创建,移动文件,复制文件,删除文件,完成后关闭ftp文件。

    php操作ftp类.zip

    针对PHP操作FTP类进行详细介绍,php实现FTP上传、FTP下载、FTP移动、FTP创建,复制文件,生成文件目录等,并附加一个操作ftp的php文件,供大家学习调用。

    php ftp操作类.zip

    PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )。

    PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)

    php/*** 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )* 时间:2006/5/9* 作者:欣然随风* QQ:276624915*/class class_ftp{ public $off; // 返回操作状态(成功/失败) public $conn_id; // FTP连接 /** * ...

    PHP用FTP类上传文件视频等的简单实现方法

    文件1:ftp.php &lt;?php /** * 仿写CodeIgniter的FTP类 * FTP基本操作: * 1) 登陆; connect * 2) 当前目录文件列表; filelist * 3) 目录改变; chgdir * 4) 重命名/移动; rename * 5) 创建文件夹; mkdir *...

    爱特PHP文件管理器 v1.8.1.zip

    首次使用访问文件管理器自动提示安装(创建管理号),如果直接出现登录页面请删除userinfo.php文件后访问文件管理安装。 功能介绍: *文件详情查看 *文件批量上传 *选中文件压缩 *各种代码高亮 *文本分页...

    爱特PHP文件管理器 v1.7 开源版.rar

    *选中文件移动 *用户认证模块 *PhpMyadminWap *外链WebFtp *更多功能等你体验 解压说明: 点击压缩包前面的[file]进入文件详情界面,在解压一栏选中zip,输入解压目标目录,Unpack查看解压情况。 高亮说明...

    爱特全能网站文件专家 v2.8

    爱特文件专家安装环境//可以操作Ftp文件使用远程上传输入Url地址即可导入文件用清单功能批量操作不同目录文件,如压缩. 命名功能如果输入绝对路径还可以当移动使有时操作重要文件怕出错,文件复件让你安心. 谦容各种...

    FTP 文件传输管理工具 FTPGetter Professional 5.97.0.215 中文多语免费版.zip

    但是,单个 shell 命令可以使服务器将所有文件和文件夹合并到一个压缩存档中,使其易于下载。 FTPGetter 5 Professional 完全支持 shell 脚本。 预定的 FTP/SFTP 上传和下载 FTPGetter 自动执行 FTP 和 SFTP 上载和...

    爱特全能网站文件专家 v2.8.zip

    爱特文件专家技巧文件列表添加Ftp://可以操作Ftp文件使用远程上传输入Url地址即可导入文件用清单功能批量操作不同目录文件,如压缩. 命名功能如果输入绝对路径还可以当移动使有时操作重要文件怕出错,文件复件让你安心...

    爱特全能网站文件专家 v2.4.rar

    爱特文件专家技巧文件列表添加Ftp://可以操作Ftp文件使用远程上传输入Url地址即可导入文件用清单功能批量操作不同目录文件,如压缩. 命名功能如果输入绝对路径还可以当移动使有时操作重要文件怕出错,文件复件让你安心...

    nServer-v2.1023[FTP + MYSQL + HTTP + PHP(FCGI)]

    - 修改一个Nginx启动时的系统错误 - 更新Nginx版本为1.2.3 - 更新PHP版本为5.4.5 2012年06月06日 - 几个有关HTML5的小修正,无关紧要 2012年06月01日 - 统一配置文件替换变量表,参看anrip/config.php,请注意修改...

    Linux FTP服务搭建

    第1步,创建一个临时文件,比如/etc/vsftpd/ftp_pam_db.users,格式如下: 用户1 用户1密码 用户2 用户2密码 …… 第2步,用db_load指令生成pam_userdb认证需要的账号文件: [root@localhost vsftpd]#db_load -T -t ...

    PHP和MySQL Web开发第4版pdf以及源码

    2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 ...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    PHP程序开发范例宝典III

    实例171 动态创建一个完整的数据库 261 6.11 数据的导入导出 263 实例172 MySQL数据库自身的导入导出 263 实例173 SQL Server数据导入到MySQL数据库 266 实例174 Aceess数据导入到MySQL数据库 268 6.12 ...

    schlepwire:一个简单的 PHP 文件来移动整个 ProcessWire 站点和数据库

    索线一个简单的 PHP 程序来移动整个 ProcessWire 站点和数据库。入门您所需要的只是要复制的站点根目录中的 schlepwire.php 文件。 注意:此工具很粗糙,安全性极低。 它依赖于设置以在站点之间切换,并且它“足够...

    PHP和MySQL WEB开发(第4版)

    2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习...

Global site tag (gtag.js) - Google Analytics