예제 #1
0
 public function action_ajax_test_ftp()
 {
     // is ajax
     if (!\Input::is_ajax()) {
         \Response::redirect(\Uri::create('admin'));
     }
     // check permission
     if (\Model_AccountLevelPermission::checkAdminPermission('config_global', 'config_global') == false) {
         \Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string()))));
         return null;
     }
     if (\Input::method() == 'POST') {
         // get post value and test connection
         $config['hostname'] = trim(\Input::post('hostname'));
         $config['username'] = trim(\Input::post('username'));
         $config['password'] = trim(\Input::post('password'));
         $config['port'] = (int) trim(\Input::post('port'));
         $config['passive'] = trim(\Input::post('passive')) == 'true' ? true : false;
         $config['ssl_mode'] = false;
         $config['debug'] = false;
         $basepath = trim(\Input::post('basepath'));
         // connect to ftp
         $ftp = \Ftp::forge($config);
         $ftp->connect();
         $ftp->change_dir($basepath);
         $files = $ftp->list_files();
         $ftp->close();
         $output = array();
         if ($files !== false) {
             $output['form_status'] = 'success';
             $output['form_status_message'] = \Lang::get('config_ftp_connected_check_basepath_from_dir_structure_below');
             natsort($files);
             $output['list_files'] = '<ul>';
             foreach ($files as $file) {
                 $output['list_files'] .= '<li>' . $file . '</li>';
             }
             $output['list_files'] .= '</ul>';
         } else {
             // got false from list_files means cannot connect
             $output['form_status'] = 'error';
             $output['form_status_message'] = \Lang::get('config_ftp_could_not_connect_to_server');
         }
         // clear no use variables
         unset($basepath, $config, $file, $files, $ftp);
         // send out json values
         $response = new \Response();
         $response->set_header('Content-Type', 'application/json');
         $response->body(json_encode($output));
         return $response;
     }
 }
예제 #2
0
 /**
  * Upload files with Ftp
  *
  * @param   string|array  The name of the config group to use, or a configuration array.
  * @param   bool          Automatically connect to this server.
  */
 public static function with_ftp($config = 'default', $connect = true)
 {
     static::$with_ftp = \Ftp::forge($config, $connect);
 }
예제 #3
0
 /**
  * Upload files with FTP
  *
  * @param
  *        	string|array The name of the config group to use, or a configuration array.
  * @param
  *        	bool Automatically connect to this server.
  */
 public static function with_ftp($config = 'default', $connect = true)
 {
     if (static::$with_ftp = \Ftp::forge($config, $connect)) {
         // if we have an ftp object, activate the move callback
         static::$upload->setConfig('moveCallback', '\\Upload\\move_callback');
     } else {
         // creating the ftp object failed, disable the callback
         static::$upload->setConfig('moveCallback', null);
     }
 }