一个简单的ftp操作类
<?php
class Ftp {
protected $conn;
protected $host;
protected $port;
protected $user;
protected $pass;
public function __construct($host, $user, $pass, $port=21)
{
$this->host = $host;
$this->port = $port;
$this->user = $user;
$this->pass = $pass;
$this->conn = $this->connect();
$this->login();
}
/**
* 连接ftp服务器
* @return [type] [description]
*/
protected function connect()
{
$conn = ftp_connect($this->host, $this->port);
if (!$conn && !$login) {
$this->getError('连接FTP服务器失败');
} else {
return $conn;
}
}
/**
* 登录ftp服务器
* @return [type] [description]
*/
protected function login()
{
$login = ftp_login($this->conn, $this->user, $this->pass);
if (!$login) {
$this->getError('FTP服务器登录失败!');
}
}
/**
* 删除服务器上的文件
* @return 成功返回true,其它返回false
*/
public function deleteFile($path)
{
if (!empty($path)) {
$del = ftp_delete($this->conn, $page);
return $del;
} else {
return false;
}
}
/**
* 上传文件
* @return 成功返回true,失败返回false
*/
public function upFile($remote_file,$locale_file,$mode = FTP_ASCII)
{
if (empty($remote_file) || empty($locale_file)) {
return false;
}
$file = ftp_put($this->conn, $remote_file, $locale_file, $mode);
return $file;
}
/**
* 创建目录
* @return 成功返回文件目录名,其它false
*/
public function makeDir($dir_name)
{
if (!empty($dir_name)) {
$dir = ftp_mkdir($this->conn,$dir_name);
return $dir;
} else {
return false;
}
}
/**
* 删除目录
* @return 成功返回true,其它false
*/
public function delDir($dir_name)
{
if (!empty($dir_name)) {
$dir = ftp_rmdir($this->conn,$dir_name);
return $dir;
} else {
return false;
}
}
/**
* 获取文件最后修改时间
* @param [type] $file_name [description]
* @return [type] [description]
*/
public function getFileLastModifyTime($file_name)
{
return ftp_mdtm($this->conn, $file_name);
}
/**
* 获取文件大小
* @param [type] $file_name [description]
* @return [type] [description]
*/
public function getFileSize($file_name)
{
return ftp_size($this->conn,$file_name);
}
/**
* 关闭ftp服务器连接
* @return [type] [description]
*/
public function close()
{
return ftp_close($this->conn);
}
/**
* 重命名文件名
* @param [type] $file_name ftp上的文件名
* @param [type] $new_file_name 新的文件名
* @return [type] [description]
*/
public function rename($file_name, $new_file_name)
{
return ftp_rename($this->conn,$file_name, $new_file_name);
}
public function getError($msg)
{
return $msg;
}
}