Spec-Zone.ru › CodeIgniter 3

Класс FTP

Класс FTP CodeIgniter позволяет передавать файлы на удаленный сервер. Удаленные файлы также можно перемещать, переименовывать и удалять. Класс FTP также включает функцию «зеркалирования», которая позволяет воссоздать весь локальный каталог на удаленном сервере через FTP.

Примечание

Протоколы SFTP и SSL FTP не поддерживаются, поддерживается только стандартный FTP.

  • Работа с классом 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();

В этом примере извлекается список файлов с сервера.

$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();

В этом примере локальный каталог зеркалируется на сервере.

$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();

Справочник по классу

class CI_FTP
connect([$config = array()])
Параметры:
  • $config (array) – Значения подключения
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Подключается и входит в систему на 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 в файле конфигурации. Просто создайте новый файл под названием ftp.php, добавьте массив $config в этот файл. Затем сохраните файл в application/config/ftp.php, и он будет автоматически использоваться.

Доступные параметры подключения

Имя параметра Значение по умолчанию Описание
hostname n/a Хост FTP (обычно что-то вроде: ftp.example.com)
username n/a Имя пользователя FTP
password n/a Пароль FTP
port 21 Порт FTP-сервера
debug FALSE TRUE/FALSE (boolean): Включить отладку для отображения сообщений об ошибках
passive TRUE TRUE/FALSE (boolean): Использовать пассивный режим
upload($locpath, $rempath[, $mode = 'auto'[, $permissions = NULL]])
Параметры:
  • $locpath (string) – Путь к локальному файлу
  • $rempath (string) – Путь к удалённому файлу
  • $mode (string) – Режим FTP, по умолчанию ‘auto’ (варианты: ‘auto’, ‘binary’, ‘ascii’)
  • $permissions (int) – Разрешения файла (восьмеричная система)
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Загружает файл на сервер. Вы должны указать локальный путь и удалённый путь, и вы можете необязательно установить режим и разрешения. Пример:

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

Если используется режим ‘auto’, он будет основан на расширении имени файла исходного файла.

Если установлено, разрешения должны передаваться в восьмеричном формате.

download($rempath, $locpath[, $mode = 'auto'])
Параметры:
  • $rempath (string) – Путь к удалённому файлу
  • $locpath (string) – Путь к локальному файлу
  • $mode (string) – Режим FTP, по умолчанию ‘auto’ (варианты: ‘auto’, ‘binary’, ‘ascii’)
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Загружает файл с сервера. Вы должны указать удалённый путь и локальный путь, и вы можете необязательно установить режим. Пример:

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

Если используется режим ‘auto’, он будет основан на расширении имени файла исходного файла.

Возвращает FALSE, если загрузка не выполняется успешно (включая случай, если у PHP нет разрешений на запись локального файла).

rename($old_file, $new_file[, $move = FALSE])
Параметры:
  • $old_file (string) – Старое имя файла
  • $new_file (string) – Новое имя файла
  • $move (bool) – Является ли операция перемещением
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет переименовать файл. Укажите имя/путь исходного файла и новое имя/путь файла.

// Renames green.html to blue.html
$this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html');
move($old_file, $new_file)
Параметры:
  • $old_file (string) – Старое имя файла
  • $new_file (string) – Новое имя файла
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет переместить файл. Укажите исходный и конечный пути:

// Moves blog.html from "joe" to "fred"
$this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html');

Примечание

Если имя файла назначения отличается, файл будет переименован.

delete_file($filepath)
Параметры:
  • $filepath (string) – Путь к файлу для удаления
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет удалить файл. Укажите исходный путь с именем файла.

$this->ftp->delete_file('/public_html/joe/blog.html');
delete_dir($filepath)
Параметры:
  • $filepath (string) – Путь к каталогу для удаления
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет удалить каталог и всё, что в нём содержится. Укажите исходный путь к каталогу с косой чертой в конце.

Важно

Будьте ОЧЕНЬ осторожны с этим методом! Он рекурсивно удалит ВСЁ внутри указанного пути, включая подкаталоги и все файлы. Абсолютно убедитесь, что путь правильный. Попробуйте сначала использовать list_files() , чтобы проверить корректность пути.

$this->ftp->delete_dir('/public_html/path/to/folder/');
list_files([$path = '.'])
Параметры:
  • $path (string) – Путь к каталогу
Возвращает:

Массив списка файлов или FALSE при ошибке

Тип возвращаемого значения:

array

Позволяет получить список файлов на сервере, возвращённый в виде массива. Вы должны указать путь к нужному каталогу.

$list = $this->ftp->list_files('/public_html/');
print_r($list);
mirror($locpath, $rempath)
Параметры:
  • $locpath (string) – Локальный путь
  • $rempath (string) – Удалённый путь
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Рекурсивно считывает локальную папку и всё, что в ней содержится (включая подпапки), и создаёт зеркало по FTP на основе этого. Любая структура каталогов исходного пути будет воссоздана на сервере. Вы должны указать исходный и конечный пути:

$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');
mkdir($path[, $permissions = NULL])
Параметры:
  • $path (string) – Путь к каталогу для создания
  • $permissions (int) – Разрешения (восьмеричная система)
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет создать каталог на сервере. Укажите путь, заканчивающийся именем каталога, который вы хотите создать, с косой чертой в конце.

Разрешения можно установить, передав восьмеричное значение во втором параметре.

// Creates a folder named "bar"
$this->ftp->mkdir('/public_html/foo/bar/', 0755);
chmod($path, $perm)
Параметры:
  • $path (string) – Путь для изменения разрешений
  • $perm (int) – Разрешения (восьмеричное значение)
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Позволяет задать разрешения файла. Укажите путь к файлу или каталогу, для которого вы хотите изменить разрешения:

// Chmod "bar" to 755
$this->ftp->chmod('/public_html/foo/bar/', 0755);
changedir($path[, $suppress_debug = FALSE])
Параметры:
  • $path (string) – Путь к каталогу
  • $suppress_debug (bool) – Отключить сообщения об ошибках для данной команды
Возвращает:

TRUE при успехе, FALSE при ошибке

Тип возвращаемого значения:

bool

Изменяет текущий рабочий каталог на указанный путь.

Параметр $suppress_debug полезен в случае, если вы хотите использовать этот метод в качестве is_dir() альтернативы для FTP.

close()
Возвращает: TRUE при успехе, FALSE при ошибке
Тип возвращаемого значения: bool

Закрывает соединение с сервером. Рекомендуется использовать после завершения загрузки.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/ftp.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API