commandExists() public method

Return true if command exists
Author: Dmitry (dio) Levashov
public commandExists ( $cmd ) : boolean
return boolean
Exemplo n.º 1
0
 /**
  * Execute elFinder command and output result
  *
  * @return void
  * @author Dmitry (dio) Levashov
  **/
 public function run()
 {
     $isPost = $_SERVER["REQUEST_METHOD"] == 'POST';
     $src = $_SERVER["REQUEST_METHOD"] == 'POST' ? $_POST : $_GET;
     $cmd = isset($src['cmd']) ? $src['cmd'] : '';
     $args = array();
     if (!function_exists('json_encode')) {
         $error = $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_JSON);
         $this->output(array('error' => '{"error":["' . implode('","', $error) . '"]}', 'raw' => true));
     }
     if (!$this->elFinder->loaded()) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_VOL)));
     }
     // telepat_mode: on
     if (!$cmd && $isPost) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UPLOAD_COMMON, elFinder::ERROR_UPLOAD_FILES_SIZE), 'header' => 'Content-Type: text/html'));
     }
     // telepat_mode: off
     if (!$this->elFinder->commandExists($cmd)) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UNKNOWN_CMD)));
     }
     // collect required arguments to exec command
     foreach ($this->elFinder->commandArgsList($cmd) as $name => $req) {
         $arg = $name == 'FILES' ? $_FILES : (isset($src[$name]) ? $src[$name] : '');
         if (!is_array($arg)) {
             $arg = trim($arg);
         }
         if ($req && empty($arg)) {
             $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_INV_PARAMS, $cmd)));
         }
         $args[$name] = $arg;
     }
     $args['debug'] = isset($src['debug']) ? !!$src['debug'] : false;
     $this->output($this->elFinder->exec($cmd, $args));
 }
Exemplo n.º 2
0
 /**
  * Execute elFinder command and output result
  *
  * @return void
  * @author Dmitry (dio) Levashov
  **/
 public function run()
 {
     $isPost = $_SERVER["REQUEST_METHOD"] == 'POST';
     $src = $_SERVER["REQUEST_METHOD"] == 'POST' ? $_POST : $_GET;
     if ($isPost && !$src && ($rawPostData = @file_get_contents('php://input'))) {
         // for support IE XDomainRequest()
         $parts = explode('&', $rawPostData);
         foreach ($parts as $part) {
             list($key, $value) = array_pad(explode('=', $part), 2, '');
             $key = rawurldecode($key);
             if (substr($key, -2) === '[]') {
                 $key = substr($key, 0, strlen($key) - 2);
                 if (!isset($src[$key])) {
                     $src[$key] = array();
                 }
                 $src[$key][] = rawurldecode($value);
             } else {
                 $src[$key] = rawurldecode($value);
             }
         }
         $_POST = $this->input_filter($src);
         $_REQUEST = $this->input_filter(array_merge_recursive($src, $_REQUEST));
     }
     $cmd = isset($src['cmd']) ? $src['cmd'] : '';
     $args = array();
     if (!function_exists('json_encode')) {
         $error = $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_JSON);
         $this->output(array('error' => '{"error":["' . implode('","', $error) . '"]}', 'raw' => true));
     }
     if (!$this->elFinder->loaded()) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_VOL), 'debug' => $this->elFinder->mountErrors));
     }
     // telepat_mode: on
     if (!$cmd && $isPost) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UPLOAD, elFinder::ERROR_UPLOAD_TOTAL_SIZE), 'header' => 'Content-Type: text/html'));
     }
     // telepat_mode: off
     if (!$this->elFinder->commandExists($cmd)) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UNKNOWN_CMD)));
     }
     // collect required arguments to exec command
     foreach ($this->elFinder->commandArgsList($cmd) as $name => $req) {
         $arg = $name == 'FILES' ? $_FILES : (isset($src[$name]) ? $src[$name] : '');
         if (!is_array($arg)) {
             $arg = trim($arg);
         }
         if ($req && (!isset($arg) || $arg === '')) {
             $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_INV_PARAMS, $cmd)));
         }
         $args[$name] = $arg;
     }
     $args['debug'] = isset($src['debug']) ? !!$src['debug'] : false;
     $this->output($this->elFinder->exec($cmd, $this->input_filter($args)));
 }
 /**
  * Execute elFinder command and output result
  *
  * @return void
  * @author Dmitry (dio) Levashov
  **/
 public function run()
 {
     $isPost = $this->reqMethod === 'POST';
     $src = $isPost ? $_POST : $_GET;
     $maxInputVars = !$src || isset($src['targets']) ? ini_get('max_input_vars') : null;
     if ((!$src || $maxInputVars) && ($rawPostData = file_get_contents('php://input'))) {
         // for max_input_vars and supports IE XDomainRequest()
         $parts = explode('&', $rawPostData);
         if (!$src || $maxInputVars < count($parts)) {
             $src = array();
             foreach ($parts as $part) {
                 list($key, $value) = array_pad(explode('=', $part), 2, '');
                 $key = rawurldecode($key);
                 if (preg_match('/^(.+?)\\[([^\\[\\]]*)\\]$/', $key, $m)) {
                     $key = $m[1];
                     $idx = $m[2];
                     if (!isset($src[$key])) {
                         $src[$key] = array();
                     }
                     if ($idx) {
                         $src[$key][$idx] = rawurldecode($value);
                     } else {
                         $src[$key][] = rawurldecode($value);
                     }
                 } else {
                     $src[$key] = rawurldecode($value);
                 }
             }
             $_POST = $this->input_filter($src);
             $_REQUEST = $this->input_filter(array_merge_recursive($src, $_REQUEST));
         }
     }
     if (isset($src['targets']) && $this->elFinder->maxTargets && count($src['targets']) > $this->elFinder->maxTargets) {
         $error = $this->elFinder->error(elFinder::ERROR_MAX_TARGTES);
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_MAX_TARGTES)));
     }
     $cmd = isset($src['cmd']) ? $src['cmd'] : '';
     $args = array();
     if (!function_exists('json_encode')) {
         $error = $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_JSON);
         $this->output(array('error' => '{"error":["' . implode('","', $error) . '"]}', 'raw' => true));
     }
     if (!$this->elFinder->loaded()) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_CONF, elFinder::ERROR_CONF_NO_VOL), 'debug' => $this->elFinder->mountErrors));
     }
     // telepat_mode: on
     if (!$cmd && $isPost) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UPLOAD, elFinder::ERROR_UPLOAD_TOTAL_SIZE), 'header' => 'Content-Type: text/html'));
     }
     // telepat_mode: off
     if (!$this->elFinder->commandExists($cmd)) {
         $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_UNKNOWN_CMD)));
     }
     // collect required arguments to exec command
     $hasFiles = false;
     foreach ($this->elFinder->commandArgsList($cmd) as $name => $req) {
         if ($name === 'FILES') {
             if (isset($_FILES)) {
                 $hasFiles = true;
             } elseif ($req) {
                 $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_INV_PARAMS, $cmd)));
             }
         } else {
             $arg = isset($src[$name]) ? $src[$name] : '';
             if (!is_array($arg) && $req !== '') {
                 $arg = trim($arg);
             }
             if ($req && $arg === '') {
                 $this->output(array('error' => $this->elFinder->error(elFinder::ERROR_INV_PARAMS, $cmd)));
             }
             $args[$name] = $arg;
         }
     }
     $args['debug'] = isset($src['debug']) ? !!$src['debug'] : false;
     $args = $this->input_filter($args);
     if ($hasFiles) {
         $args['FILES'] = $_FILES;
     }
     $this->output($this->elFinder->exec($cmd, $args));
 }