目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于CodeIgniter安装下载 CodeIgniter安装指导从老版本升级疑难解答介绍开始CodeIgniter 是什么?CodeIgniter 速记表支持特性应用程序流程图模型-视图-控制器架构目标教程内容提要加载静态内容创建新闻条目读取新闻条目结束语常规主题CodeIgniter URL控制器保留字视图模型辅助函数使用 CodeIgniter 类库创建你自己的类库使用 CodeIgniter 适配器创建适配器创建核心系统类钩子 - 扩展框架的核心自动装载资源公共函数URI 路由错误处理缓存调试应用程序以CLI方式运行管理应用程序处理多环境PHP替代语法安全开发规范类库参考基准测试类日历类购物车类配置类Email 类加密类文件上传类表单验证详解FTP 类图像处理类输入类Javascript 类语言类装载类迁移类输出类分页类模板解析器类安全类Session 类HTML 表格类引用通告类排版类单元测试类URI 类User-Agent 类表单验证XML-RPC 和 XML-RPC 服务器Zip 编码类缓存适配器适配器参考适配器数据库类Active Record 类数据库缓存类自定义函数调用数据库配置连接你的数据库数据库快速入门例子代码字段数据数据库维护类查询辅助函数数据库类查询生成查询记录集表数据事务数据库工具类JavaScript类辅助函数参考数组辅助函数CAPTCHA 辅助函数Cookie Helper日期辅助函数目录辅助函数下载辅助函数Email 辅助函数文件辅助函数表单辅助函数HTML辅助函数Inflector 辅助函数语言辅助函数数字辅助函数路径辅助函数安全辅助函数表情辅助函数字符串辅助函数文本辅助函数排版辅助函数URL 辅助函数XML 辅助函数
文字

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

FTP 类

CodeIgniter的FTP类允许你将本地文件传输到远程服务器上,同时可以移动、重命名和删除远程服务器上的文件。这个FTP类所包含的一个"mirroring"函数允许你通过FTP在远程服务器上创建一个本地文件夹的镜像。

注意: 不支持 SFTP 和 SSL FTP 协议, 仅支持标准 FTP 协议.

初始化类

像大多数其他CodeIgniter 类一样,FTP 类在控制器里使用$this->load->library 函数来初始化:

$this->load->library('ftp');

一旦加载, FTP对象就可以使用: $this->ftp

使用例子

在这个例子中,首先建立一个到FTP服务器的连接,接着读取一个本地文件然后以ASCII模式上传。文件的权限被设置为755。

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['debug'] = TRUE;

$this->ftp->connect($config);

$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);

$this->ftp->close();

下面的例子从FTP服务器上获得了文件列表

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['debug'] = TRUE;

$this->ftp->connect($config);

$list = $this->ftp->list_files('/public_html/');

print_r($list);

$this->ftp->close();

下面的例子在FTP服务器上创建了一个本地文件夹的镜像。

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['debug'] = TRUE;

$this->ftp->connect($config);

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

$this->ftp->close();

函数参考

$this->ftp->connect()

连接并登录到FTP服务器,通过向函数传递一个数组来设置连接参数,或者你可以把这些参数保存在一个配置文件中。

下面例子演示了如何手动设置参数:

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['port']     = 21;
$config['passive']  = FALSE;
$config['debug']    = TRUE;

$this->ftp->connect($config);

在配置文件中设置参数

如果你更倾向把FTP参数设置保存在一个配置文件中,只需创建一个名为ftp.php的文件, 把 $config 数组添加到该文件中,然后保存成config/ftp.php 它就会自动被读取。

可用连接选项:

  • hostname - FTP主机名。 通常看起来是这样的:  ftp.example.com
  • username - FTP用户名。
  • password - FTP密码。
  • port - 端口号。 默认设置为21
  • debug - TRUE/FALSE (布尔值). 是否开启调试显示错误信息。
  • passive - TRUE/FALSE (布尔值). 是否使用被动模式,默认设置为被动模式。

$this->ftp->upload()

将一个文件上传到你的服务器上。本地路径和远程路径这两个参数是必需的,而传输模式和权限设置这两个参数则是可选的。例如:

$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);

传输模式包括:  ascii, binary, 以及 auto (默认值)。如果使用了auto模式,将根据源文件的扩展名来自动选择传输模式。

设置权限,你可以将一个octal (八进制)的权限值通过第四个参数传递过去。

$this->ftp->download()

从你的服务器下载文件。你必须提供远程路径和本地路径,设置什么模式是可选的。例:

$this->ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii');

Mode options are:  ascii, binary, and auto (the default). If auto is used it will base the mode on the file extension of the source file.

如果下载失败返回 FALSE (包括 PHP 没有写入文件的权限的情况)

$this->ftp->rename()

作用是给一个文件重命名。请给出原文件名/路径和新的文件名/路径。

// 将文件 green.html 重命名为 blue.html
$this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html');

$this->ftp->move()

作用是移动一个文件。请给出源路径和目标路径:

// 将文件 blog.html 从 "joe" 移动到 "fred"
$this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html');

说明: 如果源文件名与目标文件名不同,文件将会被重命名。

$this->ftp->delete_file()

作用是删除一个文件。请给出源文件名和所在路径。

$this->ftp->delete_file('/public_html/joe/blog.html');

$this->ftp->delete_dir()

作用是删除一个目录以及此目录下的全部内容。请给出原目录的路径,并以斜线结束。

重要提示  请 非常谨慎 地使用这个函数。它将删除你给出的目录下的 所有内容,也就是说此目录下的所有子目录以及所有文件都会被删除。请确保你给出的路径是绝对正确的。可以先试着使用 list_files() 函数来验证你的路径是否正确。

$this->ftp->delete_dir('/public_html/path/to/folder/');

$this->ftp->list_files()

允许你检索你服务器上所有文件的列表,以数组的形式返回检索结果。你必须给出要检索的路径。

$list = $this->ftp->list_files('/public_html/');

print_r($list);

$this->ftp->mirror()

检索一个本地目录下的所有内容(包括子目录和所有文件),并通过FTP为这个目录创建一份镜像。源路径下的任何结构都会被创建到服务器上。你必须给出源路径和目标路径:

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

$this->ftp->mkdir()

允许你在服务器上创建一个目录。请给出你想要创建的目录的完整路径,截止到你要创建的目录名,并在末尾添加斜线结束。你还可以在第二个参数中传递一个八进制的权限值。

// 创建一个名为"bar"的目录
$this->ftp->mkdir('/public_html/foo/bar/', DIR_WRITE_MODE);

$this->ftp->chmod()

允许你设置文件权限。请给出你要设置的文件或者目录所在的路径:

// 将 "bar" 的权限设置为 777
$this->ftp->chmod('/public_html/foo/bar/', DIR_WRITE_MODE);

$this->ftp->close();

关闭到服务器的连接。当你上传完毕时,建议使用这个函数关闭连接。

 

翻译贡献者: dimitry, Hex, IT不倒翁, tg8866, yinzhili, yygcom
最后修改: 2012-02-06 00:44:15
上一篇:下一篇: