zoukankan      html  css  js  c++  java
  • PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )

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

    来源:PHP100   时间:2013-12-13 11:35:14   阅读数:49702

    分享到: 19

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

    001./**
    002.* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
    003.* 时间:2006/5/9
    004.* 作者:欣然随风
    005.* QQ:276624915
    006.*/
    007.class class_ftp
    008.{
    009.public $off; // 返回操作状态(成功/失败)
    010.public $conn_id; // FTP连接
    011./**
    012.* 方法:FTP连接
    013.* @FTP_HOST -- FTP主机
    014.* @FTP_PORT -- 端口
    015.* @FTP_USER -- 用户名
    016.* @FTP_PASS -- 密码
    017.*/
    018.function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
    019.{
    020.$this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");
    021.@ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");
    022.@ftp_pasv($this->conn_id,1); // 打开被动模拟
    023.}
    024./**
    025.* 方法:上传文件
    026.* @path -- 本地路径
    027.* @newpath -- 上传路径
    028.* @type -- 若目标目录不存在则新建
    029.*/
    030.function up_file($path,$newpath,$type=true)
    031.{
    032.if($type) $this->dir_mkdirs($newpath);
    033.$this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
    034.if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";
    035.}
    036./**
    037.* 方法:移动文件
    038.* @path -- 原路径
    039.* @newpath -- 新路径
    040.* @type -- 若目标目录不存在则新建
    041.*/
    042.function move_file($path,$newpath,$type=true)
    043.{
    044.if($type) $this->dir_mkdirs($newpath);
    045.$this->off = @ftp_rename($this->conn_id,$path,$newpath);
    046.if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";
    047.}
    048./**
    049.* 方法:复制文件
    050.* 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径
    051.* @path -- 原路径
    052.* @newpath -- 新路径
    053.* @type -- 若目标目录不存在则新建
    054.*/
    055.function copy_file($path,$newpath,$type=true)
    056.{
    057.$downpath = "c:/tmp.dat";
    058.$this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载
    059.if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
    060.$this->up_file($downpath,$newpath,$type);
    061.}
    062./**
    063.* 方法:删除文件
    064.* @path -- 路径
    065.*/
    066.function del_file($path)
    067.{
    068.$this->off = @ftp_delete($this->conn_id,$path);
    069.if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";
    070.}
    071./**
    072.* 方法:生成目录
    073.* @path -- 路径
    074.*/
    075.function dir_mkdirs($path)
    076.{
    077.$path_arr = explode('/',$path); // 取目录数组
    078.$file_name = array_pop($path_arr); // 弹出文件名
    079.$path_div = count($path_arr); // 取层数
    080.foreach($path_arr as $val) // 创建目录
    081.{
    082.if(@ftp_chdir($this->conn_id,$val) == FALSE)
    083.{
    084.$tmp = @ftp_mkdir($this->conn_id,$val);
    085.if($tmp == FALSE)
    086.{
    087.echo "目录创建失败,请检查权限及路径是否正确!";
    088.exit;
    089.}
    090.@ftp_chdir($this->conn_id,$val);
    091.}
    092.}
    093.for($i=1;$i=$path_div;$i++) // 回退到根
    094.{
    095.@ftp_cdup($this->conn_id);
    096.}
    097.}
    098./**
    099.* 方法:关闭FTP连接
    100.*/
    101.function close()
    102.{
    103.@ftp_close($this->conn_id);
    104.}
    105.}// class class_ftp end
    106./************************************** 测试 ***********************************
    107.$ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // 打开FTP连接
    108.//$ftp->up_file('aa.txt','a/b/c/cc.txt'); // 上传文件
    109.//$ftp->move_file('a/b/c/cc.txt','a/cc.txt'); // 移动文件
    110.//$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // 复制文件
    111.//$ftp->del_file('a/b/dd.txt'); // 删除文件
    112.$ftp->close(); // 关闭FTP连接
    113.******************************************************************************/
    114.?>
  • 相关阅读:
    2015年新的征程,我的博客开通啦!
    基于USB3.0、DP1.2的网络隔离数据安全传输方案
    USB OTG to PC USB API简介
    SMA2SATA、PCIe2SATA转换模块(也有叫:Sata Test Fixtures)
    SATA接口硬盘加密器
    SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS(可选数据流、NTFS的安全属性)
    About USB Data Link Cable API
    蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应
    nRF51822外设应用[2]:GPIOTE的应用-按键检测
    蓝牙4.0BLE抓包(二) – 广播包解析
  • 原文地址:https://www.cnblogs.com/hesitation/p/4653850.html
Copyright © 2011-2022 走看看