Example #1
0
<?php

/**
 * cut file
 * @author Logan Cai (cailongqun [at] yahoo [dot] com [dot] cn)
 * @link www.phpletter.com
 * @since 22/May/2007
 *
 */
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php";
if (!osc_is_admin_user_logged_in()) {
    exit('Direct access is not allowed.');
}
$error = "";
$info = '';
if (CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_CUT) {
    $error = SYS_DISABLED;
} elseif (!isset($_POST['selectedDoc']) || !is_array($_POST['selectedDoc']) || sizeof($_POST['selectedDoc']) < 1) {
    $error = ERR_NOT_DOC_SELECTED_FOR_CUT;
} elseif (empty($_POST['currentFolderPath']) || !isUnderRoot($_POST['currentFolderPath'])) {
    $error = ERR_FOLDER_PATH_NOT_ALLOWED;
} else {
    require_once CLASS_SESSION_ACTION;
    $sessionAction = new SessionAction();
    $sessionAction->setAction($_POST['action_value']);
    $sessionAction->setFolder($_POST['currentFolderPath']);
    $sessionAction->set($_POST['selectedDoc']);
    $info = ',num:' . sizeof($_POST['selectedDoc']);
}
echo "{error:'" . $error . "'\n" . $info . "}";
} elseif (!preg_match("/^[a-zA-Z0-9 _\\-.]+\$/", $_POST['name'])) {
    $error = ERR_RENAME_FORMAT;
} elseif (empty($_POST['original_path']) || !file_exists($_POST['original_path'])) {
    $error = ERR_RENAME_FILE_NOT_EXISTS;
} elseif (substr(slashToBackslash(removeTrailingSlash($_POST['original_path'])), strrpos(slashToBackslash(removeTrailingSlash($_POST['original_path'])), "/") + 1) == $_POST['name']) {
    $error = ERR_NO_CHANGES_MADE;
} elseif (file_exists(addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name'])) {
    $error = ERR_RENAME_EXISTS;
} elseif (is_file($_POST['original_path']) && !isValidExt($_POST['name'], explode(",", CONFIG_UPLOAD_VALID_EXTS), explode(",", CONFIG_UPLOAD_INVALID_EXTS))) {
    $error = ERR_RENAME_FILE_TYPE_NOT_PERMITED;
} elseif (!rename(removeTrailingSlash($_POST['original_path']), addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name'])) {
    $error = ERR_RENAME_FAILED;
} else {
    //update record of session if image exists in session for cut or copy
    include_once CLASS_SESSION_ACTION;
    $sessionAction = new SessionAction();
    $selectedDocuments = $sessionAction->get();
    if (removeTrailingSlash($sessionAction->getFolder()) == getParentPath($_POST['original_path']) && sizeof($selectedDocuments)) {
        if (($key = array_search(basename($_POST['original_path']), $selectedDocuments)) !== false) {
            $selectedDocuments[$key] = $_POST['name'];
            $sessionAction->set($selectedDocuments);
        }
    } elseif (removeTrailingSlash($sessionAction->getFolder()) == removeTrailingSlash($_POST['original_path'])) {
        $sessionAction->setFolder($_POST['original_path']);
    }
    $path = addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name'];
    if (is_file($path)) {
        include_once CLASS_FILE;
        $file = new file($path);
        $fileInfo = $file->getFileInfo();
        $fileInfo['mtime'] = date(DATE_TIME_FORMAT, $fileInfo['mtime']);