is_array($files['name']) ? $files['name'][$i] : $files['name'], 'type' => is_array($files['type']) ? $files['type'][$i] : $files['type'], 'tmp_name' => is_array($files['tmp_name']) ? $files['tmp_name'][$i] : $files['tmp_name'], 'error' => is_array($files['error']) ? $files['error'][$i] : $files['error'], 'size' => is_array($files['size']) ? $files['size'][$i] : $files['size'], ]; if ($file['error'] === UPLOAD_ERR_OK && handle_upload($file)) { $uploaded++; } } if ($uploaded > 0) { flash('success', $uploaded . ' Datei(en) hochgeladen.'); } else { flash('error', 'Upload fehlgeschlagen.'); } redirect('/admin/media.php'); } } // Alle Bilder sammeln function scan_uploads(string $dir, string $prefix = ''): array { $files = []; if (!is_dir($dir)) return $files; $items = scandir($dir); foreach ($items as $item) { if ($item === '.' || $item === '..' || $item === '.htaccess' || $item === '.gitkeep') continue; $path = $dir . '/' . $item; if (is_dir($path)) { $files = array_merge($files, scan_uploads($path, $prefix . $item . '/')); } elseif (preg_match('/\.(jpg|jpeg|png|gif|webp)$/i', $item)) { $files[] = [ 'path' => $prefix . $item, 'url' => UPLOAD_URL . $prefix . $item, 'size' => filesize($path), 'time' => filemtime($path), ]; } } return $files; } $images = scan_uploads(rtrim(UPLOAD_DIR, '/')); usort($images, fn($a, $b) => $b['time'] - $a['time']); $pageTitle = 'Medien'; $currentPage = 'media'; ob_start(); ?>
Noch keine Bilder vorhanden.