/

Medien, Kamera & Video-Uploads

Video-Felder und Live-Kameraaufnahme direkt im Browser, mit change_type('video') und change_type('camera').

Video-Uploads

change_type($field, 'video', '', $extra) ist ein eigener Feldtyp, nicht einfach 'file' mit Video-Endungen - es findet keine GD-basierte Bildverarbeitung statt (Resize/Crop/Wasserzeichen/Thumbnails sind reine Bild-Funktionen), und es gibt keinen konfigurierbaren Vorschaumodus zur Auswahl: Ein Video-Feld zeigt immer einen nativen <video controls>-Player. Die Listenzelle zeigt nur ein kleines, stummgeschaltetes Poster-Vorschaubild; ein Klick darauf öffnet den vollständigen Player in voller Größe, im selben Modal-Rahmen, den auch die Vorschau des Bild-Felds verwendet.

$xcrud->change_type('simple_video', 'video', '', ['not_rename' => true]);
OptionTypStandardBeschreibung
not_renameboolfalseBehält den Originalnamen der hochgeladenen Datei (weiterhin gegen Path Traversal bereinigt), gleiche Bedeutung wie bei 'file'.

Hochgeladene Videos werden gegen XcrudConfig::$uploadAllowedVideoExt geprüft (Standard ['mp4', 'webm', 'ogg']) - dieselbe Haltung "nicht blind der Dateiendung vertrauen", die 'image' von getimagesize() erhält, auch wenn für Video ohne eine ffmpeg-Abhängigkeit keine vergleichbar leichtgewichtige Signaturprüfung verfügbar ist - hier tragen also die Endungs-Whitelist sowie die übliche Grenze des Projekts "von hier ausgelieferter Inhalt kann nicht ausgeführt werden" die Hauptlast.

Kameraaufnahme

change_type($field, 'camera', '', $extra) nimmt ein Foto direkt über die Kamera eines Geräts auf, mittels der getUserMedia()-API des Browsers - eine Live-Vorschau plus eine Aufnehmen-Schaltfläche neben der üblichen Dropzone, ganz ohne Dateiauswahl. Nützlich auf Mobilgeräten/Tablets, wo ein direktes Foto schneller ist als das Navigieren durch einen Dateibrowser.

$xcrud->change_type('camera_photo', 'camera', '', ['width' => 800, 'height' => 800]);

Alles nach der Aufnahme - Speicherung, Resize-/Crop-/Wasserzeichen-Optionen, das Listen-Thumbnail, Klick-zur-Vorschau - ist identisch zu einem einfachen 'image'-Feld; 'camera' nutzt dieselben bildähnlichen Verarbeitungsoptionen (width/height/crop/manual_crop/ratio/watermark/watermark_position/thumbs), die auf der Seite Datei- & Bild-Uploads dokumentiert sind - nur die Aufnahmeseite unterscheidet sich.

In einem Browser oder Kontext ganz ohne Kamerazugriff (ein alter Browser, eine verweigerte Berechtigung, ein Origin ohne HTTPS/localhost - Kamerazugriff benötigt einen sicheren Kontext) fällt das Feld auf die normale Dateiauswahl zurück, statt in eine Sackgasse zu führen.

Gemeinsame Upload-Konfiguration

XcrudConfig::$uploadAllowedVideoExt (Standard ['mp4', 'webm', 'ogg']) bestimmt, welche Video-Endungen sowohl von 'video' als auch, wo relevant, von jedem über 'camera' aufgenommenen Video akzeptiert werden. $uploadDir und $uploadMaxSize gelten hier genauso wie bei Datei-/Bild-Feldern - siehe die XcrudConfig-Referenz.