예제 #1
0
function changeFromFtp()
{
    global $message;
    global $specialchars;
    $success = false;
    $dirgallery = getDirAsArray(GALLERIES_DIR_REL, "dir");
    foreach ($dirgallery as $currentgalerien) {
        $change = false;
        if (true !== ($error = setChmod(GALLERIES_DIR_REL . $currentgalerien))) {
            $message .= returnMessage(false, $error);
            return;
        }
        $test_galerie = $specialchars->replaceSpecialChars($specialchars->rebuildSpecialChars($currentgalerien, false, false), false);
        if ($test_galerie != $currentgalerien) {
            $nr = 0;
            $new_name = $test_galerie;
            while (in_array($new_name, $dirgallery)) {
                $new_name = "%23_" . $nr . "_" . $test_galerie;
                $nr++;
            }
            if (true !== ($error = moveFileDir(GALLERIES_DIR_REL . $currentgalerien, GALLERIES_DIR_REL . $new_name))) {
                $message .= returnMessage(false, $error);
                return;
            }
            $change = true;
            $currentgalerien = $new_name;
        }
        if (!is_dir(GALLERIES_DIR_REL . $currentgalerien . '/' . PREVIEW_DIR_NAME)) {
            if (true !== ($error = mkdirMulti(GALLERIES_DIR_REL . $currentgalerien . '/' . PREVIEW_DIR_NAME))) {
                $message .= returnMessage(false, $error);
                return;
            }
            $change = true;
        }
        if (!file_exists(GALLERIES_DIR_REL . $currentgalerien . "/texte.conf.php")) {
            if (false === newConf(GALLERIES_DIR_REL . $currentgalerien . "/texte.conf.php")) {
                $message .= returnMessage(false, getLanguageValue("gallery_error_subtitle_conf"));
                return;
            }
            $change = true;
        }
        $dirimg = getDirAsArray(GALLERIES_DIR_REL . $currentgalerien, "img");
        foreach ($dirimg as $currentimg) {
            if (true !== ($error = setChmod(GALLERIES_DIR_REL . $currentgalerien . "/" . $currentimg))) {
                $message .= returnMessage(false, $error);
                return;
            }
            $test_img = cleanUploadFile($currentimg);
            if ($test_img != $currentimg) {
                $nr = 0;
                $new_name = $test_img;
                while (in_array($new_name, $dirimg)) {
                    $new_name = "_" . $nr . "_" . $test_img;
                    $nr++;
                }
                if (true !== ($error = moveFileDir(GALLERIES_DIR_REL . $currentgalerien . "/" . $currentimg, GALLERIES_DIR_REL . $currentgalerien . "/" . $new_name))) {
                    $message .= returnMessage(false, $error);
                    return;
                }
                $change = true;
                if (is_file(GALLERIES_DIR_REL . $currentgalerien . '/' . PREVIEW_DIR_NAME . "/" . $currentimg)) {
                    if (true !== ($error = moveFileDir(GALLERIES_DIR_REL . $currentgalerien . '/' . PREVIEW_DIR_NAME . "/" . $currentimg, GALLERIES_DIR_REL . $currentgalerien . '/' . PREVIEW_DIR_NAME . "/" . $new_name))) {
                        $message .= returnMessage(false, $error);
                        return;
                    }
                    $change = true;
                }
            }
        }
        if ($change) {
            $success .= "<b>" . $specialchars->rebuildSpecialChars($currentgalerien, false, true) . "</b><br />";
        }
    }
    if ($success) {
        $message .= returnMessage(true, getLanguageValue("gallery_messages_from_ftp") . "<br /><br />" . $success);
    } else {
        $message .= returnMessage(true, getLanguageValue("gallery_messages_from_ftp_no") . "");
    }
}
예제 #2
0
 protected function trim_file_name($name, $type)
 {
     // Remove path information and dots around the filename, to prevent uploading
     // into different directories or replacing hidden system files.
     // Also remove control characters and spaces (\x00..\x20) around the filename:
     $file_name = basename($name);
     // Add missing file extension for known image types:
     if (strpos($file_name, '.') === false && preg_match('/^image\\/(gif|jpe?g|png)/', $type, $matches)) {
         $file_name .= '.' . $matches[1];
     }
     $file_name = cleanUploadFile($file_name);
     if ($this->options['discard_aborted_uploads']) {
         while (is_file($this->options['upload_dir'] . $file_name)) {
             $file_name = $this->upcount_name($file_name);
         }
     }
     return $file_name;
 }
예제 #3
0
function moveFileDir($org, $new, $datei_file = false)
{
    // Existenz prüfen
    if (!file_exists($org)) {
        return returnMessage(false, getLanguageValue("error_no_file_dir"));
    }
    if (file_exists($new)) {
        return returnMessage(false, getLanguageValue("error_exists_file_dir"));
    }
    if ($datei_file and cleanUploadFile(basename($new)) != basename($new)) {
        return returnMessage(false, getLanguageValue("error_datei_file_name"));
    }
    if (true !== @rename($org, $new)) {
        return returnMessage(false, getLanguageValue("error_move_file_dir"));
    }
    updateFileNameInAll($org, $new);
    return true;
}
예제 #4
0
function isUpdateFileName($file, $type = false, $getnewname = false)
{
    $tmpfile = $file;
    if ($type == "catpage") {
        $oldext = array(".txt", ".hid", ".tmp", ".lnk");
        if (strlen($file) > 3 and ctype_digit(substr($file, 0, 2)) and $file[2] == "_") {
            if (!$getnewname) {
                return true;
            }
            $file = substr($file, 3);
        }
        if (strlen($file) > 4) {
            $test = substr($file, -4);
            if (in_array($test, $oldext)) {
                if (!$getnewname) {
                    return true;
                }
                $file = $file . ".php";
            }
        }
    } elseif ($type == "file") {
        if ($tmpfile != ($file = cleanUploadFile(changeMoziloOldSpecialChars($file, false)))) {
            if (!$getnewname) {
                return true;
            }
            if (strlen($file) > 0) {
                return $file;
            }
        }
        return false;
    }
    if ($tmpfile != ($file = changeMoziloOldSpecialChars($file))) {
        if (!$getnewname) {
            return true;
        }
        if (strlen($file) > 0) {
            return $file;
        }
    }
    return false;
}