Ejemplo n.º 1
0
}
/*-----------執行動作判斷區----------*/
include_once $GLOBALS['xoops']->path('/modules/system/include/functions.php');
$op = system_CleanVars($_REQUEST, 'op', '', 'string');
$sn = system_CleanVars($_REQUEST, 'sn', 0, 'int');
$csn = system_CleanVars($_REQUEST, 'csn', 0, 'int');
switch ($op) {
    case "insert_tad_gallery":
        $sn = insert_tad_gallery();
        mk_rss_xml();
        mk_rss_xml($csn);
        redirect_header("view.php?sn={$sn}", 1, sprintf(_MD_TADGAL_IMPORT_UPLOADS_OK, $filename));
        break;
    case "upload_muti_file":
        $csn = upload_muti_file();
        mk_rss_xml();
        mk_rss_xml($csn);
        redirect_header("index.php?csn={$csn}", 1, sprintf(_MD_TADGAL_IMPORT_UPLOADS_OK, $filename));
        break;
    case "upload_zip_file":
        upload_zip_file();
        header("location: uploads.php?op=to_batch_upload");
        break;
    default:
        uploads_tabs();
        break;
}
/*-----------秀出結果區--------------*/
$xoopsTpl->assign("toolbar", toolbar_bootstrap($interface_menu));
$xoopsTpl->assign("bootstrap", get_bootstrap());
include_once XOOPS_ROOT_PATH . '/footer.php';
Ejemplo n.º 2
0
/**
 * Laedt eine bestehende Verzeichnisstruktur in das System.
 * Die ganze Struktur wird samt Dateien und Unterverzeichnissen rekursiv
 * eingefuegt: 1. Den aktuellen Ordner erstellen. -- 2. Die Dateien in
 * alphabetischer Reihenfolge einfuegen. -- 3. Die Verzeichnisstruktur jedes
 * Unterordners einfuegen (Rekursion).
 * Nach Einfuegen einer Datei / eines Verzeichnisses wird die Datei oder das
 * Verzeichnis geloescht.
 *
 * @param range_id Die ID des Ordners unter dem die Verzeichnisstruktur
 * @param dir
 * @return (no return value)
 */
function upload_recursively($range_id, $dir) {
    static $count = array(
        'files'       => 0,
        'files_max'   => false,
        'subdirs'     => 0,
        'subdirs_max' => false,
    );

    $max_files = get_config('ZIP_UPLOAD_MAX_FILES');
    $max_dirs = get_config('ZIP_UPLOAD_MAX_DIRS');

    $files = array ();
    $subdirs = array ();

    if ($count['files'] >= $max_files) {
        $count['files_max'] = true;
        return;
    }
    if ($count['subdirs'] >= $max_dirs) {
        $count['subdirs_max'] = true;
        return;
    }

    // Versuchen, das Verzeichnis zu oeffnen
    if ($handle = @opendir($dir)) {

        // Alle Eintraege des Verzeichnisses durchlaufen
        while (false !== ($file = readdir($handle))) {

            // Verzeichnisverweise . und .. ignorieren
            if ($file != "." && $file != "..") {
                // Namen vervollstaendigen
                $file = $dir."/".$file;

                if (is_link($file)) {
                    continue;
                }

                if (is_file($file)) {
                    // Datei in Dateiliste einfuegen
                    $files[] = $file;
                }
                elseif (is_dir($file)) {
                    // Verzeichnis in Verzeichnisliste einfuegen
                    $subdirs[] = $file;
                }
            }
        }
        closedir($handle);
    }

    // Listen der Dateien und Unterverzeichnisse sortieren.
    sort($files);
    sort($subdirs);

    // Alle Dateien hinzufuegen.
    while (list ($nr, $file) = each($files)) {
        if ($count['files'] >= $max_files) {
            $count['files_max'] = true;
            break;
        }
        if (validate_upload(array('name' => $file, 'size' => filesize($file)))) {
            $count['files'] += upload_zip_file($range_id, $file);
        }
    }

    // Alle Unterverzeichnisse hinzufuegen.
    while (list ($nr, $subdir) = each($subdirs)) {
        if ($count['subdirs'] >= $max_dirs) {
            $count['subdirs_max'] = true;
            break;
        }
        // Verzeichnis erstellen
        $pos = strrpos($subdir, "/");
        $name = substr($subdir, $pos + 1, strlen($subdir) - $pos);
        $dir_id = create_folder($name, "", $range_id);
        $count['subdirs']++;
        // Verzeichnis hochladen.
        upload_recursively($dir_id, $subdir);
    }
    return $count;
}