PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
[导读] *** 作用:FTP操作类( 拷贝、移动、删除文件 创建目录 )* 时间:2006 5 9* 作者:欣然随风* QQ:276624915* class class_ftp{ public $off; 返回操作状态(成功 失败) public $conn
001./**002.* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )003.* 时间:2006/5/9004.* 作者:欣然随风005.* QQ:276624915006.*/007.class class_ftp008.{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 end106./************************************** 测试 ***********************************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.?>
浙公网安备 33010602011771号