目录 搜索
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于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
上一篇: 下一篇: