Codeigniter 4 отправляет загруженный файл на FTP-сервер

Пожалуйста, помогите, я хочу отправить загруженный файл на другой сервер через FTP. Я не могу найти документацию по FTP на странице официальной документации CodeIgniter 4. Могу ли я использовать для этого FTP-библиотеку CI 3?

Прямо сейчас я успешно загрузил файл на свой веб-сервер.


person Andy    schedule 17.12.2020    source источник


Ответы (1)


Codeigniter 4 не предоставляет библиотеку FTP. Вы можете попробовать адаптировать старую библиотеку для работы с CI4, но я бы использовал для этого пакет composer:

https://packagist.org/packages/nicolab/php-ftp-client

Вы можете просто установить эту библиотеку через композитор, а затем использовать ее так:

Установите библиотеку с композитором:

require nicolab/php-ftp-client

Подключиться к серверу FTP:

$ftp = new \FtpClient\FtpClient();
$ftp->connect($host);
$ftp->login($login, $password);

OR

Подключитесь к серверу FTP через SSL (на порт 990 или другой порт):

$ftp = new \FtpClient\FtpClient();
$ftp->connect($host, true, 990);
$ftp->login($login, $password);

Примечание. Соединение неявно закрывается в конце выполнения скрипта (когда объект уничтожается). Поэтому нет необходимости вызывать $ftp-›close(), за исключением явного переподключения.

Использование Загрузить все файлы и все каталоги очень просто:

// upload with the BINARY mode
$ftp->putAll($source_directory, $target_directory);

// Is equal to
$ftp->putAll($source_directory, $target_directory, FTP_BINARY);

// or upload with the ASCII mode
$ftp->putAll($source_directory, $target_directory, FTP_ASCII); 

Если вы все еще хотите использовать библиотеку codeigniter 3, насколько я вижу, это должно быть довольно легко сделать. Просто добавьте его в папку вашего приложения/библиотек.

Тогда вам нужно будет изменить 2 вещи:

  • пространство имен библиотеки;
  • Измените функцию _errors, которая использует экземпляр CI 3;
person marcogmonteiro    schedule 18.12.2020