Home  >  Article  >  Backend Development  >  PHP FTP operation class (upload, copy, move, delete files/create directories)

PHP FTP operation class (upload, copy, move, delete files/create directories)

WBOY
WBOYOriginal
2016-07-25 08:46:31947browse
  1. /**
  2. * Function: FTP operations (copy, move, delete files/create directories)
  3. * Time: 2006/5/9
  4. * Author: Xinran Suifeng
  5. * QQ: 276624915
  6. */
  7. class class_ftp
  8. {
  9. public $off; // Return operation status (success/failure)
  10. public $conn_id; // FTP connection
  11. /**
  12. * Method: FTP connection
  13. * @FTP_HOST -- FTP host
  14. * @FTP_PORT -- Port
  15. * @FTP_USER -- Username
  16. * @FTP_PASS -- Password
  17. * /
  18. function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
  19. {
  20. $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP server connection failed");
  21. @ftp_login ($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP server login failed");
  22. @ftp_pasv($this->conn_id,1); // Turn on passive simulation
  23. }
  24. /**
  25. * Method: Upload file
  26. * @path -- local path
  27. * @newpath -- upload path
  28. * @type -- if the target directory does not exist, create a new one
  29. */
  30. function up_file($path,$newpath,$type=true)
  31. {
  32. if($type) $this->dir_mkdirs($newpath);
  33. $this->off = @ftp_put( $this->conn_id,$newpath,$path,FTP_BINARY);
  34. if(!$this->off) echo "File upload failed, please check whether the permissions and path are correct!";
  35. }
  36. /**
  37. * Method: Move files
  38. * @path -- Original path
  39. * @newpath -- New path
  40. * @type -- If the target directory does not exist, create it
  41. */
  42. function move_file($path,$newpath,$type=true)
  43. {
  44. if($type) $this->dir_mkdirs($newpath);
  45. $this->off = @ftp_rename($ this->conn_id,$path,$newpath);
  46. if(!$this->off) echo "File move failed, please check whether the permissions and original path are correct!";
  47. }
  48. /**
  49. * Method: Copy files
  50. * Note: Since FTP does not have a copy command, the alternative operation of this method is: download and then upload to a new path
  51. * @path -- original path
  52. * @newpath -- new path
  53. * @type -- If the target directory does not exist, create it
  54. */
  55. function copy_file($path,$newpath,$type=true)
  56. {
  57. $downpath = "c:/tmp.dat";
  58. $this->off = @ftp_get($this->conn_id, $downpath,$path,FTP_BINARY);// Download
  59. if(!$this->off) echo "File copy failed, please check whether the permissions and original path are correct! ";
  60. $this->up_file($downpath,$newpath,$type);
  61. }
  62. /**
  63. * Method: delete file
  64. * @path -- path
  65. */
  66. function del_file($path)
  67. {
  68. $this->off = @ftp_delete ($this->conn_id,$path);
  69. if(!$this->off) echo "File deletion failed, please check whether the permissions and path are correct! ";
  70. }
  71. /**
  72. * Method: Generate directory
  73. * @path -- path
  74. */
  75. function dir_mkdirs($path)
  76. {
  77. $path_arr = explode('/',$path); // Get directory array
  78. $file_name = array_pop($path_arr) ; // Pop up the file name
  79. $path_div = count($path_arr); // Get the number of layers
  80. foreach($path_arr as $val) // Create a directory
  81. {
  82. if(@ftp_chdir($this->conn_id,$ val) == FALSE)
  83. {
  84. $tmp = @ftp_mkdir($this->conn_id,$val);
  85. if($tmp == FALSE)
  86. {
  87. echo "Directory creation failed, please check the permissions and path correct! ";
  88. exit;
  89. }
  90. @ftp_chdir($this->conn_id,$val);
  91. }
  92. }
  93. for($i=1;$i=$path_div;$i++) // Fall back to root
  94. {
  95. @ftp_cdup($this->conn_id);
  96. }
  97. }
  98. /**
  99. *Method: Close FTP connection
  100. */
  101. function close()
  102. {
  103. @ftp_close($this->conn_id);
  104. }
  105. }/ / class class_ftp end
  106. /************************************** test************* ************************
  107. $ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // Open FTP Connect
  108. //$ftp->up_file('aa.txt','a/b/c/cc.txt'); // Upload files
  109. //$ftp->move_file('a/b/c /cc.txt','a/cc.txt'); // Move files
  110. //$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // Copy file
  111. //$ftp->del_file('a/b/dd.txt'); // Delete file
  112. $ftp->close(); // Close FTP connection
  113. ******* *************************************************** **********************/
  114. ?>
Copy code

PHP, FTP


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn