咨询:13529513104

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

view sourceprint?
001./**
002.* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
003.* 时间:2006/5/9
004.* 作者:欣然随风
005.* QQ:276624915
006.*/
007.classclass_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) ordie("FTP服务器连接失败");
021.@ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) ordie("FTP服务器登陆失败");
022.@ftp_pasv($this->conn_id,1); // 打开被动模拟
023.}
024./**
025.* 方法:上传文件
026.* @path -- 本地路径
027.* @newpath -- 上传路径
028.* @type -- 若目标目录不存在则新建
029.*/
030.functionup_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.functionmove_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.functioncopy_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.functiondel_file($path)
067.{
068.$this->off = @ftp_delete($this->conn_id,$path);
069.if(!$this->off) echo"文件删除失败,请检查权限及路径是否正确!";
070.}
071./**
072.* 方法:生成目录
073.* @path -- 路径
074.*/
075.functiondir_mkdirs($path)
076.{
077.$path_arr= explode('/',$path); // 取目录数组
078.$file_name= array_pop($path_arr); // 弹出文件名
079.$path_div= count($path_arr); // 取层数
080.foreach($path_arras$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.functionclose()
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.?>

除非特别声明,PHP100新闻均为原创或投稿报道,转载请注明作者及原文链接
原文地址:http://www.php100.com/html/php/rumen/2013/1213/6402.html


【责任编辑:(Top) 返回页面顶端