Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 /**
  * Загрузка файла на сервер
  * 
  * @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;
         }
     }
 }