mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 02:31:40 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12249 201d5d3c-b55e-5fd7-737f-ddc643e51545
112 lines
2.5 KiB
PHP
112 lines
2.5 KiB
PHP
<?php
|
|
class installModel extends install
|
|
{
|
|
var $pwd;
|
|
|
|
function getSFTPList()
|
|
{
|
|
$ftp_info = Context::getRequestVars();
|
|
if(!$ftp_info->ftp_host)
|
|
{
|
|
$ftp_info->ftp_host = "127.0.0.1";
|
|
}
|
|
$connection = ssh2_connect($ftp_info->ftp_host, $ftp_info->ftp_port);
|
|
if(!ssh2_auth_password($connection, $ftp_info->ftp_user, $ftp_info->ftp_password))
|
|
{
|
|
return new Object(-1,'msg_ftp_invalid_auth_info');
|
|
}
|
|
|
|
$sftp = ssh2_sftp($connection);
|
|
$curpwd = "ssh2.sftp://$sftp".$this->pwd;
|
|
$dh = @opendir($curpwd);
|
|
if(!$dh) return new Object(-1, 'msg_ftp_invalid_path');
|
|
$list = array();
|
|
while(($file = readdir($dh)) !== false)
|
|
{
|
|
if(is_dir($curpwd.$file))
|
|
{
|
|
$file .= "/";
|
|
}
|
|
else
|
|
{
|
|
continue;
|
|
}
|
|
$list[] = $file;
|
|
}
|
|
closedir($dh);
|
|
$this->add('list', $list);
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
/* End of file install.model.php */
|
|
/* Location: ./modules/install/install.model.php */
|