function list_ds_files($dir, &$server_data, $full_info = false, $extension = array()) { $CI =& get_instance(); $CI->load->helper('string'); $CI->load->driver('files'); $dir = reduce_double_slashes($dir); // Данные для соединения $config = get_file_protocol_config($server_data); $CI->files->set_driver($config['driver']); $CI->files->connect($config); if ($full_info) { return $CI->files->list_files_full_info($dir, $extension); } else { return $CI->files->list_files($dir); } }
/** * Загрузка файла на сервер * * @param int * */ public function upload($server_id = false) { $this->load->helper('string'); $this->load->helper('path'); if (!$this->_check_server($server_id)) { $this->_send_error($this->_error); return; } $this->form_validation->set_rules('dir', lang('directory'), 'trim|xss_clean'); if ($this->form_validation->run() == false) { if (validation_errors()) { $this->_send_error(lang('web_ftp_form_error')); return false; } } $loc_dir = $this->_two_point_delete($this->input->post('dir', true)); $tmp_dir = $this->files->_get_tmp_dir(); $remdir = $this->_get_path($this->servers->server_data) . $loc_dir . '/'; $upload_config['upload_path'] = $tmp_dir; $upload_config['overwrite'] = true; $upload_config['max_filename'] = 64; $upload_config['allowed_types'] = '*'; $this->load->library('upload', $upload_config); if (!$this->upload->do_upload()) { $this->_send_error(lang('server_files_upload_error') . '<br />' . $this->upload->display_errors()); return; } else { /* Файл загружен, делаем необходимые дальнейшие правки */ $file_data = $this->upload->data(); if (!$this->_check_file_ext($file_data)) { $this->_send_error(lang('web_ftp_forbidden_type')); return false; } $config = get_file_protocol_config($this->servers->server_data); try { $this->files->set_driver($config['driver']); $this->files->connect($config); $this->files->upload($file_data['full_path'], $remdir . $file_data['orig_name']); unlink($file_data['full_path']); /* Обнуляем список кешированных карт сервера */ $server_data['maps_list'] = ''; $this->servers->edit_game_server($this->servers->server_data['id'], $server_data); $message = lang('server_files_upload_successful', $file_data['orig_name'], $loc_dir); /* Сохраняем логи */ $log_data['type'] = 'server_files'; $log_data['command'] = 'upload_file'; $log_data['user_name'] = $this->users->auth_login; $log_data['server_id'] = $this->servers->server_data['id']; $log_data['msg'] = 'Upload file success'; $log_data['log_data'] = 'Directory: ' . $remdir . ' File name: ' . $file_data['orig_name'] . "\n"; $this->panel_log->save_log($log_data); $this->_send_response(array('status' => 1, 'message' => $message)); } catch (Exception $e) { unlink($file_data['full_path']); $message = $e->getMessage(); /* Сохраняем логи */ $log_data['type'] = 'server_files'; $log_data['command'] = 'upload_file'; $log_data['user_name'] = $this->users->auth_login; $log_data['server_id'] = $this->servers->server_data['id']; $log_data['msg'] = $message; $log_data['log_data'] = 'Directory: ' . $remdir . ' File name: ' . $file_data['orig_name'] . "\n"; $this->panel_log->save_log($log_data); $this->_send_error($message); return false; } } }