PHP FTP Operation class ( upload, copy, move, delete files / Create directory )
2016-06-01 PHP Programming
/**
* role:FTP operation class ( Copy, move, delete files / Create directory )
*/
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 simulation
}
/**
* 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 path is correct!" ";
}
/**
* Method: Move File
* @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!" ";
}
/**
* Method: Copy File
* Description: Due to FTP no copy command , This workaround is: 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 copy failed, please check the permissions and the original path is 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 the permissions and path is correct!" ";
}
/**
* method: Generate Directory
* @path-- path
*/
function Dir_mkdirs ($path)
{
$path _arr = explode ('/', $path); Fetch directory Array
$file _name = Array_pop ($path _arr); Popup file name
$path _div = count ($path _arr); number of layers to be taken
foreach ($path _arr as $val)// Create directory
{
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 path is correct!" ";
Exit
}
@ftp_chdir ($this->conn_id, $val);
}
}
for ($i =1; $i = $path _div; $i + +)//fallback to root
{
@ftp_cdup ($this->conn_id);
}
}
/**
* method: Close 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 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 (); Close FTP Connection
******************************************************************************/
?>
FTP file Operations