PHP的FTP上传类分享
内容摘要
这篇文章主要为大家详细介绍了PHP的FTP上传类分享,具有一定的参考价值,可以用来参考一下。经测试代码如下:
文章正文
这篇文章主要为大家详细介绍了PHP的FTP上传类分享,具有一定的参考价值,可以用来参考一下。
经测试代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | <code class = "php" > <?php /******************************************** * MODULE:FTP类 *******************************************/ 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 =true) { if ( $type ) $this ->dir_mkdirs( $newpath ); $this ->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); } } // class class_ftp end /************************************** 测试 *********************************** $ftp = new ftp('222.13.67.42',21,'hlj','123456'); // 打开FTP连接 $ftp->up_file('aa.wav','test/13548957217/bb.wav'); // 上传文件 //$ftp->move_file('aaa/aaa.php','aaa.php'); // 移动文件 //$ftp->copy_file('aaa.php','aaa/aaa.php'); // 复制文件 //$ftp->del_file('aaa.php'); // 删除文件 $ftp->close(); // 关闭FTP连接 //******************************************************************************/ /*** 以上代码来自:php教程(www.idcnote.com) ***/ ?></code> |
注:关于PHP的FTP上传类分享的内容就先介绍到这里,更多相关文章的可以留意
代码注释