Copy Code code as follows:
<?php
/**
* Function: FTP operation class (copy, move, delete file/create directory)
* Time: 2006/5/9
* Author: Gladly with the wind
* qq:276624915
*/
Class Class_ftp
{
Public $off; Return operation status (Success/failure)
public $conn _id; FTP connection
/**
* Method: FTP connection
* @FTP_HOST--FTP host
* @FTP_PORT--Port
* @FTP_USER--User name
* @FTP_PASS--Password
*/
function __construct ($FTP _host, $FTP _port, $FTP _user, $FTP _pass)
{
$this->conn_id = @ftp_connect ($FTP _host, $FTP _port) or Die ("FTP Server Connection failed");
@ftp_login ($this->conn_id, $FTP _user, $FTP _pass) or Die ("FTP server login failed");
@ftp_pasv ($this->conn_id,1); Turn on Passive impersonation
}
/**
* Method: Upload File
* @path--Local path
* @newpath--Upload path
* @type-New If the target directory does not exist
*/
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 "File upload failed, please check the permissions and the path is correct!" ";
}
/**
* Method: Moving files
* @path--The original path
* @newpath--New path
* @type-New If the target directory does not exist
*/
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 file move failed, please check the permissions and the original path is correct! ";
}
/**
* Methods: Copying files
* Description: Because FTP does not copy the command, this method workaround: Download and upload to the new path
* @path--The original path
* @newpath--New path
* @type-New If the target directory does not exist
*/
function Copy_file ($path, $newpath, $type =true)
{
$downpath = "C:/tmp.dat";
$this->off = @ftp_get ($this->conn_id, $downpath, $path, ftp_binary);/download
if (! $this->off) echo File replication failed, check that the permissions and the original path are correct! ";
$this->up_file ($downpath, $newpath, $type);
}
/**
* Method: Delete File
* @path--Path
*/
function Del_file ($path)
{
$this->off = @ftp_delete ($this->conn_id, $path);
if (! $this->off) echo file deletion failed, please check that the permissions and path are correct! ";
}
/**
* Method: Build Directory
* @path--Path
*/
function Dir_mkdirs ($path)
{
$path _arr = explode ('/', $path); Take an array of directories
$file _name = Array_pop ($path _arr); Pop-up file name
$path _div = count ($path _arr); Number of layers taken
foreach ($path _arr as $val)//create a table of contents
{
if (@ftp_chdir ($this->conn_id, $val) = = FALSE)
{
$tmp = @ftp_mkdir ($this->conn_id, $val);
if ($tmp = = FALSE)
{
Echo Directory creation failed, please check the permissions and the path is correct! ";
Exit
}
@ftp_chdir ($this->conn_id, $val);
}
}
For ($i =1 $i = $path _div; $i + +)//rewind to root
{
@ftp_cdup ($this->conn_id);
}
}
/**
* Method: Turn off FTP connection
*/
function Close ()
{
@ftp_close ($this->conn_id);
}
}//class Class_ftp End
/************************************** Test ***********************************
$ftp = new Class_ftp (' 192.168.100.143 ', ', ' user ', ' pwd '); Open an FTP connection
$ftp->up_file (' aa.txt ', ' a/b/c/cc.txt '); Uploading files
$ftp->move_file (' a/b/c/cc.txt ', ' a/cc.txt '); Moving files
$ftp->copy_file (' a/cc.txt ', ' a/b/dd.txt '); Copying files
$ftp->del_file (' a/b/dd.txt '); deleting files
$ftp->close (); Turn off FTP connections
*****************************************************************************/
?>