} /*-----------執行動作判斷區----------*/ 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';
/** * 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; }