Es kann bestimmt werden welche Dateiendungen und maximale Dateigröße beim Upload einer Datei in einen Multimedia Mandanten, den Mediapool oder über ein Dateiupload Feld des Formularmoduls erlaubt sind. Diese Einstellungen können global für alle Mandanten, pro Mandant und je Dateiupload Feld getroffen werden.
Globale und Mandanten Einstellungen
Zu finden sind diese Einstellungen jeweils unter dem Reiter Dateien.
Einstellungen je Dateiupload Feld im Formularmodul
Whitelist und Blacklist
Die Werte für erlaubte Dateitypen (Whitelist) und nicht erlaubte Dateitypen (Blacklist) sind jeweils kommaseparierte Listen mit den Dateiendungen (z.B. jpg,zip,gif). Groß- und Kleinschreibung spielt bei der gesamten Prüfung keine Rolle. Auch ist es egal, ob Ihre Dateiendungen mit einem vorangehenden . (Punkt) oder Leerzeichen definiert werden (.jpg, .zip, .gif).
Maximale Dateigröße
Die maximale Dateigröße wird in Bytes angegeben.
Vererbung der Einstellungen
Die Vererbung beginnt bei den globalen Einstellungen, über die Einstellungen des Mandanten und endet bei den Einstellungen für ein Dateiupload Feld. Wird in einem dieser Schritte eine oder mehrere Einstellungen gefunden, bricht die Vererbung ab. Das bedeutet, wenn Sie z.B. einem Dateiupload Feld nur den Dateityp jpg erlauben und für die maximale Dateigröße keinen Wert eintragen, gilt ein z.B. global eingestellter Wert für die maximale Dateigröße nicht stellvertretend für dieses Feld (das Feld hat somit keine Begrenzung für die Dateigröße).
Programmatische Prüfung
Wenn Sie in Ihren Skripten diese Prüfung verwenden möchten, bevor Sie selbst eine Datei hochladen, verwenden Sie hierfür die Page Methode
validateFile($source, $name = '').
if ($page->validateFile($source)) {
// Datei hochladen
}
Der Parameter $source ist der Pfad zur Datei (bei einem Dateiupload finden Sie diesen für gewöhnlich in dem Array $_FILES). Der zweite Parameter $name ist optional und nur dann sinnvoll, wenn der Dateiname im Pfad aus $source nicht für die Prüfung verwendet werden kann. Beispiel:
if ($page->validateFile('/tmp/asj32894whdjd20mm', 'Mein_Bild.jpg')) {
// Datei hochladen
}