Пример #1
0
 /**
  * Handle rename requests (/filemanager/api/mv).
  */
 public function get_mv()
 {
     $file = urldecode(join('/', func_get_args()));
     if (self::verify_folder($file, $this->root)) {
         if (!self::verify_folder_name($_GET['rename'])) {
             return $this->error(i18n_get('Invalid folder name'));
         } else {
             $parts = explode('/', $file);
             $old = array_pop($parts);
             $new = preg_replace('/' . preg_quote($old) . '$/', $_GET['rename'], $file);
             if (!rename($this->root . $file, $this->root . $new)) {
                 return $this->error(i18n_get('Unable to rename') . ' ' . $file);
             }
             FileManager::prop_rename($file, $new, true);
             return array('msg' => i18n_get('Folder renamed.'), 'data' => $new);
         }
     } elseif (self::verify_file($file, $this->root)) {
         if (!self::verify_file_name($_GET['rename'])) {
             return $this->error(i18n_get('Invalid file name'));
         } else {
             $parts = explode('/', $file);
             $old = array_pop($parts);
             $new = preg_replace('/' . preg_quote($old) . '$/', $_GET['rename'], $file);
             if (!rename($this->root . $file, $this->root . $new)) {
                 return $this->error(i18n_get('Unable to rename') . ' ' . $file);
             }
             FileManager::prop_rename($file, $new);
             $this->controller->hook('filemanager/rename', array('file' => $file, 'renamed' => $new));
             return array('msg' => i18n_get('File renamed.'), 'data' => $new);
         }
     }
     return $this->error(i18n_get('File not found'));
 }
Пример #2
0
 /**
  * Rename a file or folder.
  */
 public static function rename($file, $new_name)
 {
     if (self::verify_folder($file)) {
         if (!self::verify_folder_name($new_name)) {
             self::$error = __('Invalid folder name');
             return false;
         }
         $parts = explode('/', $file);
         $old = array_pop($parts);
         $new = preg_replace('/' . preg_quote($old) . '$/', $new_name, $file);
         if (!rename(self::root() . $file, self::root() . $new)) {
             self::$error = __('Unable to rename') . ' ' . $file;
             return false;
         }
         self::prop_rename($file, $new, true);
         return true;
     } elseif (self::verify_file($file)) {
         if (!self::verify_file_name($new_name)) {
             self::$error = __('Invalid file name');
             return false;
         }
         $parts = explode('/', $file);
         $old = array_pop($parts);
         $new = preg_replace('/' . preg_quote($old) . '$/', $new_name, $file);
         if (!rename(self::root() . $file, self::root() . $new)) {
             self::$error = __('Unable to rename') . ' ' . $file;
             return false;
         }
         FileManager::prop_rename($file, $new);
         return true;
     }
     self::$error = __('File not found');
     return false;
 }