* @package AgileBill * @version 1.4.93 */ /** * FTP Connection Class * * This class creates a connection to a remote host for file upload/download/deletion. */ class CORE_ftp { var $server=''; var $username=''; var $password=''; var $port=21; var $remote_dir=''; ### Setup the connection: function CORE_ftp($server, $username='anonymous', $password='anonymous@domain.com', $port=21) { $this->server=$server; $this->username=$username; $this->password=$password; $this->port=$port; } ### Test the connection: function return_connection() { # SET THE ERROR REPORTING LEVEL OFF! error_reporting(0); $conn_id = @ftp_connect($this->server, $this->port); if (!$conn_id) return false; $login_result = @ftp_login($conn_id, $this->username, $this->password); if (!$login_result) return false; # SET THE ERROR REPORTING LEVEL ( E_ALL ^ E_NOTICE ) $error_reporting_eval = 'error_reporting('.ERROR_REPORTING.');'; eval($error_reporting_eval); return $conn_id; } ### Kill the connection: function kill() { if(isset($this->conn)) $this->disconnect(); unset($this); } ### Delete a file: function delete($filename) { # SET THE ERROR REPORTING LEVEL OFF! error_reporting(0); $conn=$this->return_connection(); if (!$conn) return false; @ftp_pasv($conn, $passive); $this->set_remote_dir(ftp_pwd($conn)); if(!ftp_delete($conn, $filename)) { @ftp_quit($this->conn); return false; } else { @ftp_quit($this->conn); return true; } # SET THE ERROR REPORTING LEVEL ( E_ALL ^ E_NOTICE ) $error_reporting_eval = 'error_reporting('.ERROR_REPORTING.');'; eval($error_reporting_eval); return true; } ### Send a file: function send($filename='', $save_as='', $passive=TRUE) { # SET THE ERROR REPORTING LEVEL OFF! error_reporting(0); $conn=$this->return_connection(); if ( !$conn ) return false; @ftp_pasv($conn, $passive); $this->set_remote_dir(ftp_pwd($conn)); if(!ftp_put($conn, $save_as, $filename, FTP_BINARY)) { @ftp_quit($this->conn); return false; } else { @ftp_quit($this->conn); return true; } # SET THE ERROR REPORTING LEVEL ( E_ALL ^ E_NOTICE ) $error_reporting_eval = 'error_reporting('.ERROR_REPORTING.');'; eval($error_reporting_eval); return true; } ### Get a file function get($filename='', $save_as='', $passive=TRUE) { # SET THE ERROR REPORTING LEVEL OFF! error_reporting(0); $conn=$this->return_connection(); if (!$conn) return false; @ftp_pasv($conn, $passive); $this->set_remote_dir(ftp_pwd($conn)); if(!ftp_get($conn, $save_as, $this->remote_dir.$filename, FTP_BINARY)) { @ftp_quit($this->conn); return false; } else { @ftp_quit($this->conn); return true; } } ### Set the current directory: function set_remote_dir($dir) { $x = substr($dir, (strlen($dir)-1)); if($x != "/" && $x != "\\") $dir.="/"; $this->remote_dir=$dir; } } ?>