function getInstallFTPList() { $ftp_info = Context::getRequestVars(); if (!$ftp_info->ftp_user || !$ftp_info->ftp_password) { return new Object(-1, 'msg_ftp_invalid_auth_info'); } $this->pwd = $ftp_info->ftp_root_path; if (!$ftp_info->ftp_host) { $ftp_info->ftp_host = "127.0.0.1"; } if ($ftp_info->sftp == 'Y') { return $this->getSFTPList(); } if (function_exists(ftp_connect)) { $connection = ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port); if (!$connection) { return new Object(-1, sprintf(Context::getLang('msg_ftp_not_connected'), $ftp_info->ftp_host)); } $login_result = @ftp_login($connection, $ftp_info->ftp_user, $ftp_info->ftp_password); if (!$login_result) { ftp_close($connection); return new Object(-1, 'msg_ftp_invalid_auth_info'); } if ($ftp_info->ftp_pasv != "N") { ftp_pasv($connection, true); } $_list = ftp_rawlist($connection, $this->pwd); ftp_close($connection); } else { require_once _XE_PATH_ . 'libs/ftp.class.php'; $oFtp = new ftp(); if ($oFtp->ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port)) { if ($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { $_list = $oFtp->ftp_rawlist($this->pwd); $oFtp->ftp_quit(); } else { $oFtp->ftp_quit(); return new Object(-1, 'msg_ftp_invalid_auth_info'); } } } $list = array(); if ($_list) { foreach ($_list as $k => $v) { $src = null; $src->data = $v; $res = Context::convertEncoding($src); $v = $res->data; if (strpos($v, 'd') === 0 || strpos($v, '<DIR>')) { $list[] = substr(strrchr($v, ' '), 1) . '/'; } } } $this->add('list', $list); }
/** * Add file list to Object after ftp connect * @return void|Object */ function getAdminFTPList() { Context::loadLang('./modules/autoinstall/lang'); set_time_limit(5); require_once _XE_PATH_ . 'libs/ftp.class.php'; $ftp_info = Context::getRequestVars(); if (!$ftp_info->ftp_user || !$ftp_info->ftp_password) { return new Object(-1, 'msg_ftp_invalid_auth_info'); } $this->pwd = $ftp_info->ftp_root_path; if (!$ftp_info->ftp_host) { $ftp_info->ftp_host = "127.0.0.1"; } if (!$ftp_info->ftp_port || !is_numeric($ftp_info->ftp_port)) { $ftp_info->ftp_port = "21"; } if ($ftp_info->sftp == 'Y') { if (!function_exists(ssh2_sftp)) { return new Object(-1, 'disable_sftp_support'); } return $this->getSFTPList(); } $oFtp = new ftp(); if ($oFtp->ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port)) { if ($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { $_list = $oFtp->ftp_rawlist($this->pwd); $oFtp->ftp_quit(); } else { return new Object(-1, 'msg_ftp_invalid_auth_info'); } } $list = array(); if ($_list) { foreach ($_list as $k => $v) { $src = null; $src->data = $v; $res = Context::convertEncoding($src); $v = $res->data; if (strpos($v, 'd') === 0 || strpos($v, '<DIR>')) { $list[] = substr(strrchr($v, ' '), 1) . '/'; } } } else { return new Object(-1, 'msg_ftp_no_directory'); } $this->add('list', $list); }