/// Zentrale Sanitize-Funktion für Dateinamen. /// Verhindert Path-Traversal (../), Null-Bytes und andere gefährliche Zeichen. String sanitizeDateiname(String name) { // 1. Extrahiere nur den Dateinamen (keine Pfad-Komponenten) var safe = name.split('/').last.split('\\').last; // 2. Entferne NULL-Bytes und andere gefährliche Steuerzeichen safe = safe.replaceAll(RegExp(r'[\x00-\x1F\x7F]'), ''); // 3. Entferne alles außer Wort-Zeichen, Leerzeichen und Bindestrichen safe = safe.replaceAll(RegExp(r'[^\w\s.-]'), ''); // 4. Entferne führende Punkte (versteckte Dateien) safe = safe.replaceAll(RegExp(r'^\.+'), ''); // 5. Trimmen und Default-Name falls leer safe = safe.trim(); if (safe.isEmpty) safe = 'unknown'; // 6. Auf sinnvolle Länge kürzen (255 Zeichen ist typisches Dateisystem-Limit) if (safe.length > 200) safe = safe.substring(0, 200); return safe; }