`
liumeng5888
  • 浏览: 35444 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

php ftp 远程上传文件类

php 
阅读更多
<?php
/**
* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
* 远程上传文件
* 时间:2011216
* 作者:刘猛
*
*/
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=false)
    {
    
        if($type) $this->dir_mkdirs($newpath);
        $thisds->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);
    }
}
?>
//使用方法
$ftp = new class_ftp('172.15.0.46',21,'zengzhi','aipu2010');
   $ftp->up_file($_FILES['Game_src']['tmp_name'],'/G/'.$_FILES['Game_src']['name']);
   $ftp->close();
   $src_img='http://172.15.0.46/G/'.$_FILES['Game_src']['name'];
分享到:
评论

相关推荐

    php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)

    下面小编就为大家带来一篇php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    php代码FTP操作类

    php代码FTP操作类,用于远程管理ftp服务器,可进行文件的上传、下载、删除操作

    文件上传处理PHP类.zip

    它可能把文件传输至另一计算机中去存储,或访问远程计算机上的文件,或把文件传输至另一计算机上去运行(作为一个程序)或处理(作为数据),或把文件传输至打印机去打印。由于网路中各个计算机的文件系统往往不相同...

    最好的双语网站,建站之星,SEO快速收录,建站帮手

    2. 解压程序包后, 使用FTP工具上传到远程服务器网站根目录或某一指定目录如: XXXcms/ 3. linux类服务器需要将以下目录或文件设置为可写: cache/ config/ config/settings.php system/backup/ uploads/

    php帮助文档,php。chm,php必备的中文手册

    39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Apache 特有函数 III. Alternative PHP Cache IV. Advanced PHP debugger V. Array 数组函数 ...

    hongcms_3.0.0PHP双语企业网站必选

    2. 解压程序包后, 使用FTP工具上传到远程服务器网站根目录或某一指定目录如: hongcms/ 3. linux类服务器需要将以下目录或文件设置为可写: cache/ config/ config/settings.php system/backup/ uploads/ 4. ...

    FTP FileZilla说明

    FileZilla FTP 详细说明 ... 由于FTP是专门的文件传输协议,所以用它来上传下载文件最可靠,并且权限、速度也可以灵活设置。  我开FTP主要是偶尔与别人共享文件,或远程处理另一台计算机上的文件。  

    免费的 FileZilla 中文版

    现在市面上有很多 FTP 类的软件,也给大家分享过开源免费的 FileZilla 中文版,收费的 FlashFXP 中文版等等。而今天给大家分享另一款国外的 FTPGetter Professional 中文版。FTPGetter Professional 它可以节省 FTP/...

    php网络开发完全手册

    6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 101 第7章 字符的处理与正则表达式 102 7.1 字符类型的特殊性 102 7.2 字符的显示与格式化 102 7.2.1 字符...

    php手册.chm,php手册

    39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Advanced PHP debugger III. Alternative PHP Cache IV. Apache 特有函数 V. Array 数组函数 ...

    php中文完全开发手册

    19. 使用远程文件 20. 连接处理 21. 数据库永久连接 22. 安全模式 23. PHP 的命令行模式 V. 函数参考 I. Apache 函数库 II. 数组函数库 III. Aspell functions [deprecated] IV. BCMath Arbitrary Precision ...

    PHP函数参考手册大全

    39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Advanced PHP debugger III. Alternative PHP Cache IV. Apache 特有函数 V. Array 数组函数 ...

    PHP5 完整官方 中文教程

    使用远程文件 连接处理 数据库永久连接 安全模式 PHP 的命令行模式 函数参考 .NET — .NET 函数 Apache — Apache 特有函数 APC — APC 可选 PHP 缓存 APD — APD 高级 PHP 调试器 Arrays — Array 数组函数 Aspell ...

    中文版PHP使用手册

    39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Advanced PHP debugger III. Alternative PHP Cache IV. Apache 特有函数 V. Array 数组函数 ...

    PHP手册2007整合中文版

    40. 使用远程文件 41. 连接处理 42. 数据库永久连接 43. 安全模式 44. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Apache 特有函数 III. APC 可选 PHP 缓存 IV. APD 高级 PHP 调试器 V. Array 数组函数 VI. ...

    PHP官方手册中文版

    40. 使用远程文件 41. 连接处理 42. 数据库永久连接 43. 安全模式 44. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Apache 特有函数 III. APC 可选 PHP 缓存 IV. APD 高级 PHP 调试器 V. Array 数组...

    php手册PHP5研究室编无乱码版本chm

    39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Advanced PHP debugger III. Alternative PHP Cache IV. Apache 特有函数 V. Array...

Global site tag (gtag.js) - Google Analytics