在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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. ?>
|
2022-08-17
2022-11-06
2022-08-15
2022-08-17
2022-08-16
请发表评论