示例#1
0
 protected function handle_file_upload($uploaded_file, $name, $size, $type, $error)
 {
     if (!is_dir($this->options['upload_dir']) and (ACTION == "gallery" or ACTION == "files") and (strpos($this->options['upload_dir'], "/" . CONTENT_FILES_DIR_NAME) > 0 or strpos($this->options['upload_dir'], "/" . PREVIEW_DIR_NAME) > 0) and true !== ($tmp = mkdirMulti($this->options['upload_dir']))) {
         $error = $tmp;
     }
     $file = new stdClass();
     $file->name = $this->trim_file_name($name, $type);
     $file->size = intval($size);
     $file->type = $type;
     $error = $this->has_error($uploaded_file, $file, $error);
     if (!$error && $file->name) {
         $file_path = $this->options['upload_dir'] . "." . $file->name;
         $append_file = !$this->options['discard_aborted_uploads'] && is_file($file_path) && $file->size > filesize($file_path);
         clearstatcache();
         if ($uploaded_file && is_uploaded_file($uploaded_file)) {
             // multipart/formdata uploads (POST method uploads)
             if ($append_file) {
                 file_put_contents($file_path, fopen($uploaded_file, 'r'), FILE_APPEND);
             } else {
                 move_uploaded_file($uploaded_file, $file_path);
             }
         } else {
             // Non-multipart uploads (PUT method support)
             file_put_contents($file_path, fopen('php://input', 'r'), $append_file ? FILE_APPEND : 0);
         }
         $file_size = filesize($file_path);
         if ($file_size === $file->size) {
             if (is_file($this->options['upload_dir'] . $file->name)) {
                 unlink($this->options['upload_dir'] . $file->name);
             }
             rename($file_path, $this->options['upload_dir'] . $file->name);
             $file_path = $this->options['upload_dir'] . $file->name;
             global $specialchars;
             if ($this->options['orient_image']) {
                 $this->orient_image($file_path);
             }
             $file->url = $this->options['upload_url'] . $specialchars->replaceSpecialChars($file->name, false);
             foreach ($this->options['image_versions'] as $version => $options) {
                 if ($this->create_scaled_image($file->name, $options)) {
                     if ($this->options['upload_dir'] !== $options['upload_dir']) {
                         $file->{$version . '_url'} = $options['upload_url'] . $specialchars->replaceSpecialChars($file->name, false);
                     } else {
                         clearstatcache();
                         $file_size = filesize($file_path);
                     }
                 }
             }
             if (ACTION == "gallery") {
                 $file->pixel_w = "";
                 $file->pixel_h = "";
                 if (false !== ($getimagesize = $this->is_image($file_path))) {
                     $file->pixel_w = $getimagesize[0];
                     $file->pixel_h = $getimagesize[1];
                 }
                 #                    $this->subtitle->set($file->name,"");
                 $file->subtitle = "";
             }
             setChmod($file_path);
         } else {
             if ($this->options['discard_aborted_uploads']) {
                 unlink($file_path);
                 $file->error = 'abort';
             }
         }
         $file->size = $file_size;
         $this->set_file_delete_url($file);
     } else {
         $file->error = $error;
     }
     return $file;
 }
示例#2
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") . "");
    }
}
示例#3
0
function cat_page_new($name)
{
    if ($name["type"] == "page") {
        $page_inhalt = "";
        if (substr($name["new"], -EXT_LENGTH) != EXT_LINK) {
            $page_inhalt = "[ueber1|Das ist eine Inhaltsseite]";
        }
        if (true !== ($error = saveContentToPage($page_inhalt, CONTENT_DIR_REL . $name["new"], true))) {
            return ajax_return("error", false, $error, true, "js-dialog-reload");
        }
    } elseif ($name["type"] == "cat") {
        if (true !== ($error = mkdirMulti(array(CONTENT_DIR_REL . "/" . $name["new"], CONTENT_DIR_REL . "/" . $name["new"] . "/" . CONTENT_FILES_DIR_NAME)))) {
            return ajax_return("error", false, $error, true, "js-dialog-reload");
        }
    }
    return write_sort_list();
}