目录
当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Ftp - 类別

优质
小牛编辑
119浏览
2023-12-01

FTP 类别能让你透过 FTP 协定对远端伺服器上传、下载、移动和镜像档案。

配置

FTP 类别透过 fuel/core/config/ftp.php 配置档案进行配置。它已经填充了一个预设配置群组。你可以藉由複製此配置档案到你的应用程序 config 目录,并根据需求修改该档案,以覆写此配置群组并添加新群组。

以下配置设定可以被定义:

参数类型预设描述
hostname字串
'localhost'
要连接的 FTP 伺服器的 IP 或网域名称。
username字串
''
选择性:要连接的使用者名称,如果登入是必要的话。
password字串
''
选择性:要连接的使用者密码,如果登入是必要的话。
timeout整数
90
所有后续的网路操作超时(秒)。
port整数
21
你的 FTP 伺服器回应的连接埠号。大多数伺服器使用 21。
passive布林
true
是否使用被动模式。预设情况下被动模式自动被设定。
ssl_mode布林
false
使用比通常的 FTP 稍微安全一点的 FTPS。(注:这不是 SFTP)。
debug布林
false
是否启用除错以显示错误讯息。

forge($config = 'default', $connect = true)

forge 方法被用于建立一个新的 FTP 类别实例,可以是不同配置群组的参照, 或传递一个 配置选项 的阵列。

静态
参数
参数预设描述
$config
'default'
要使用的配置群组名称,或一个配置阵列。
$connect
true
自动连接到此伺服器。
回传Ftp 物件
範例
// 连接到预设伺服器
$ftp = Ftp::forge();

// 连接到一个预定义在 config/ftp.php 的伺服器
$ftp2 = Ftp::forge('image-storage');

// 动态连接到一个伺服器
$ftp3 = Ftp::forge(array(
	'hostname' => 'fuelphp.com',
	'username' => '',
	'password' => '',
	'timeout'  => 90,
	'port'     => 21,
	'passive'  => true,
	'ssl_mode' => false,
	'debug'    => false
));

if ($ftp3->delete_dir('/') === true)
{
	exit('The world owes you a debt of gratitude');
}
else
{
	exit('You tried and that is the main thing.');
}

connect()

connect 方法能让你手动连接到一个 FTP 资源。 你只在当你 forge() ftp 物件而不自动连线时使用此方法。

静态
参数
回传目前 FTP 物件,鍊结用
範例
// 建立一个 ftp 物件,但不连线
$ftp = Ftp::forge(array(
	'hostname' => 'ftp.example.com',
	'username' => '',
	'password' => '',
	'timeout'  => 90,
	'port'     => 21,
	'passive'  => true,
	'ssl_mode' => false,
	'debug'    => false
), false);

// 在这里做一些东西

// 现在连接到伺服器
$ftp->connect();

change_dir($path = '')

change_dir 变更「目前目录」。

静态
参数
参数预设描述
$path
''
要移往的远端路径。
回传布林
範例
// 移往 /user/phil/public_html/some/path/
$ftp->change_dir('/public_html/some/path/');

mkdir($path, $permissions = null)

mkdir 方法用于在远端伺服器建立一个新目录。

静态
参数
参数预设描述
$path必要要建立的远端目录。
$permissions
null
如果设定,权限将被应用到该目录。
回传布林
範例
// 建立一个可写入的上传文件夹
$ftp->mkdir('/public_html/uploads/', 0777);

upload($local_path, $remote_path, $mode = 'auto', $permissions = null)

从本地伺服器上传一个档案或目录到远端伺服器。

静态
参数
参数预设描述
$local_path必要本地伺服器路径。
$remote_path必要远端伺服器路径。
$mode
'auto'
选项有 asciibinary、和 auto(预设)。 如果使用 auto,它将依据来源档案的副档名使用模式。
$permissions
null
如果设定,权限将被应用到该目录。
回传布林
範例
// 上传 myfile.html
$ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);

download($remote_path, $local_path, $mode = 'auto')

从远端伺服器下载一个档案或目录到本地伺服器。

静态
参数
参数预设描述
$remote_path必要远端伺服器路径。
$local_path必要本地伺服器路径。
$mode
'auto'
选项有 asciibinary、和 auto(预设)。 如果使用 auto,它将依据来源档案的副档名使用模式。
回传布林範例
// 下载 myotherfile.html
$ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii');

rename($old_file, $new_file, $move = false)

在远端伺服器移动或更名一个档案。

静态
参数
参数预设描述
$old_file必要要被更名或移动的档案。
$new_file必要移动或更名为目标的档案。
$move
false
'true' 如果这是移动,'false' 如果是一个更名。 此标誌只用于错误讯息除错。
回传布林
範例
// 连线到一个 FTP 伺服器
$ftp = Ftp::forge($config);

// 更名档案
$ftp->rename('/path/to/oldfile.txt', '/path/to/newfile.txt', false);

// 关闭连线
$ftp->close();

move($old_file, $new_file)

rename() 的别名,带着 $move 标誌设为 true

delete_file($filepath)

从远端伺服器删除一个档案。

静态
参数
参数预设描述
$filepath必要要被删除的档案。
回传布林
範例
// 连线到一个 FTP 伺服器
$ftp = Ftp::forge($config);

// 删除一个档案。
if ( ! $ftp->delete_file('/path/to/file.txt'))
{
	// 删除失败
}

// 关闭连线
$ftp->close();

delete_dir($filepath)

从远端伺服器删除一个目录并递迴在其中的任何东西。

静态
参数
参数预设描述
$filepath必要要被删除的档案。
回传布林
範例
// 连线到一个 FTP 伺服器
$ftp = Ftp::forge($config);

// 删除一个目录及所有它的内容
if ( ! $ftp->delete_dir('/path/to/folder'))
{
	// 删除失败
}

// 关闭连线
$ftp->close();

chmod($path, $perm)

在远端伺服器变更一个档案的权限。

静态
参数
参数预设描述
$path必要要变更权限的档案。
$perm必要权限,unix 风格定义,为一个八进位值。
回传布林
範例
// 连线到一个 FTP 伺服器
$ftp = Ftp::forge($config);

// 使档案为全部可写
if ( ! $ftp->chmod('/path/to/file.txt', 0666))
{
	// 变更权限失败
}

// 关闭连线
$ftp->close();

list_files($path = '.')

表列在远端伺服器上所给路径中的所有档案。

静态
参数
参数预设描述
$path
'.'
远端伺服器路径。预设为目前目录
回传阵列
範例
// 连线到一个 FTP 伺服器
$ftp = Ftp::forge($config);

// 表列档案
if ( $files = $ftp->list_files('/path/to/files') === false)
{
	// 表列失败
}
else
{
	/* 可能回传一些东西像
	   $files = array(3) {
		  [0]=>
		  string(11) "public_html"
		  [1]=>
		  string(10) "public_ftp"
		  [2]=>
		  string(3) "www"
	*/
  }

// 关闭连线
$ftp->close();

mirror($local_path, $remote_path)

递迴读取本地文件夹与其包含的一切(包括子文件夹),并藉由 FTP 的基础上建立一个镜像。 无论原始档案路径的目录结构,将在伺服器上被重建。

静态
参数
参数预设描述
$local_path
'default'
本地伺服器路径。
$remote_path
true
远端伺服器路径。
回传布林
範例
$ftp = Ftp::forge();

$ftp->connect($config);

$ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');

$ftp->close();

close()

close 方法关闭一个 forge()connect() 建立的开启到远端伺服器的 ftp 连线。

静态
参数
回传布林
範例
// 关闭一条连线
if ( ! $ftp->close())
{
	// 连线未开启
}