Dateien hochladen

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).

warning
Wenn Sie für die Whitelist einen Wert angeben, dann gilt der eingetragene Wert für die Blacklist aus logischen Gründen nicht. Sie können also nur eines dieser Felder verwenden.

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 }
wb_incandescent
Aus Sicherheitsgründen wird neben der Dateiendung auch automatisch der Mime-Type geprüft. Wenn Sie also eine Datei hochladen möchten, die über die Dateiendung nicht zur White-/Blacklist passt, der Mime-Type aber zutrifft, dann kann die Prüfung trotzdem zum erwarteten Ergebnis führen. Der Parameter $name könnte also im letzten Beispiel auch nicht übergeben werden und die Prüfung dennoch erfolgreich sein.