php FTP操作类用法:拷贝、移动、删除文件、创建目录

前端之家收集整理的这篇文章主要介绍了php FTP操作类用法:拷贝、移动、删除文件、创建目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP的FTP操作类:拷贝、移动、删除文件、创建目录,感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:
  1. <?PHP
  2. /**
  3. * FTP操作类:拷贝、移动、删除文件、创建目录
  4. *
  5. * @param
  6. * @author 编程之家 jb51.cc jb51.cc
  7. **/
  8. class class_ftp
  9. {
  10. public $off; // 返回操作状态(成功/失败)
  11. public $conn_id; // FTP连接
  12. /**
  13. * 方法:FTP连接
  14. * @FTP_HOST -- FTP主机
  15. * @FTP_PORT -- 端口
  16. * @FTP_USER -- 用户名
  17. * @FTP_PASS -- 密码
  18. */
  19. function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
  20. {
  21. $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");
  22. @ftp_login($this->conn_id,$FTP_PASS) or die("FTP服务器登陆失败");
  23. @ftp_pasv($this->conn_id,1); // 打开被动模拟
  24. }
  25. /**
  26. * 方法上传文件
  27. * @path -- 本地路径
  28. * @newpath -- 上传路径
  29. * @type -- 若目标目录不存在则新建
  30. */
  31. function up_file($path,$newpath,$type=true)
  32. {
  33. if($type) $this->dir_mkdirs($newpath);
  34. $this->off = @ftp_put($this->conn_id,$path,FTP_BINARY);
  35. if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";
  36. }
  37. /**
  38. * 方法:移动文件
  39. * @path -- 原路径
  40. * @newpath -- 新路径
  41. * @type -- 若目标目录不存在则新建
  42. */
  43. function move_file($path,$type=true)
  44. {
  45. if($type) $this->dir_mkdirs($newpath);
  46. $this->off = @ftp_rename($this->conn_id,$newpath);
  47. if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";
  48. }
  49. /**
  50. * 方法:复制文件
  51. * 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径
  52. * @path -- 原路径
  53. * @newpath -- 新路径
  54. * @type -- 若目标目录不存在则新建
  55. */
  56. function copy_file($path,$type=true)
  57. {
  58. $downpath = "c:/tmp.dat";
  59. $this->off = @ftp_get($this->conn_id,$downpath,FTP_BINARY);// 下载
  60. if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
  61. $this->up_file($downpath,$type);
  62. }
  63. /**
  64. * 方法删除文件
  65. * @path -- 路径
  66. */
  67. function del_file($path)
  68. {
  69. $this->off = @ftp_delete($this->conn_id,$path);
  70. if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";
  71. }
  72. /**
  73. * 方法生成目录
  74. * @path -- 路径
  75. */
  76. function dir_mkdirs($path)
  77. {
  78. $path_arr = explode('/',$path); // 取目录数组
  79. $file_name = array_pop($path_arr); // 弹出文件
  80. $path_div = count($path_arr); // 取层数
  81. foreach($path_arr as $val) // 创建目录
  82. {
  83. if(@ftp_chdir($this->conn_id,$val) == FALSE)
  84. {
  85. $tmp = @ftp_mkdir($this->conn_id,$val);
  86. if($tmp == FALSE)
  87. {
  88. echo "目录创建失败,请检查权限及路径是否正确!";
  89. exit;
  90. }
  91. @ftp_chdir($this->conn_id,$val);
  92. }
  93. }
  94. for($i=1;$i<=$path_div;$i++) // 回退到根
  95. {
  96. @ftp_cdup($this->conn_id);
  97. }
  98. }
  99. /**
  100. * 方法关闭FTP连接
  101. */
  102. function close()
  103. {
  104. @ftp_close($this->conn_id);
  105. }
  106. }// class class_ftp end
  107. /************************************** 测试 ***********************************
  108. $ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // 打开FTP连接
  109. //$ftp->up_file('aa.txt','a/b/c/cc.txt'); // 上传文件
  110. //$ftp->move_file('a/b/c/cc.txt','a/cc.txt'); // 移动文件
  111. //$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // 复制文件
  112. //$ftp->del_file('a/b/dd.txt'); // 删除文件
  113. $ftp->close(); // 关闭FTP连接
  114. ******************************************************************************/
  115. ?>
  116. /*** 来自编程之家 jb51.cc(jb51.cc) ***/

猜你在找的PHP相关文章