WordPress Upload weitere Dateitypen erlauben

Standardmäßig erlaubt WordPress beim Upload in die Mediathek nur bestimmte Dateitypen (File Types) bzw. MIME Types (Multipurpose Internet Mail Extensions). Wird versucht, einen nicht zugelassenen Dateityp hochzuladen, erscheint die Fehlermeldung “Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt”. Diese Einschränkung dient dem Schutz des Systems, da potenziell unsichere Dateien blockiert werden. Benötigt man jedoch aus bestimmten Gründen zusätzliche oder ungewöhnliche Dateitypen für die eigene Website, lässt sich dies problemlos über eine Filterfunktion erweitern.

Standardmäßig können in WordPress folgende Dateitypen hochgeladen werden:

Bilder
  • .jpg
  • .jpeg
  • .png
  • .gif
Dokumente
  • .pdf (Portable Document Format; Adobe Acrobat)
  • .doc, .docx (Microsoft Word Document)
  • .ppt, .pptx, .pps, .ppsx (Microsoft PowerPoint Presentation)
  • .odt (OpenDocument Text Document)
  • .xls, .xlsx (Microsoft Excel Document)
Audio
  • .mp3
  • .m4a (funktioniert nicht in allen Browsern)
  • .ogg
  • .wav
Video
  • mp4, .m4v (MPEG-4)
  • .mov (QuickTime)
  • .wmv (Windows Media Video)
  • .avi
  • .mpg
  • .ogv (Ogg)
  • .3gp (3GPP)
  • .3g2 (3GPP2)

1. WordPress Uploads für zusätzliche Datei- und MIME-Typen über die functions.php zulassen

Über die Datei functions.php des aktiven Themes (entweder des Haupt-Themes oder – falls vorhanden – des Child-Themes) lassen sich zusätzliche Datei- und MIME-Typen freigeben. Die Datei befindet sich im WordPress-Installationsverzeichnis unter:
/wp-content/themes/[NAMEDEINESTHEMES]/functions.php

Wichtig: Bitte vor dem Ändern der Datei immer eine lokale Sicherung / Backup machen!

// Kopieren Sie diesen Codeblock und fügen Sie ihn in die Datei functions.php Ihres Haupt-Themes oder Child-Themes ein. Die benötigten Dateitypen müssen Sie entsprechend anpassen.

function weitere_mime_types( $mimes ) {

// Fügen Sie hier Ihre zusätzlichen erlaubten Dateitypen und Mime-Typen hinzu.
$mimes['rar'] = 'application/x-rar';  // Zeile, um rar zu erlauben
$mimes['zip'] = 'application/zip';  // Zeile um zip zu erlauben
$mimes['csv'] = 'text/csv'; // Zeile um csv zu erlauben
$mimes['rtf'] = 'text/richtext'; // Zeile um rtf zu erlauben
$mimes['tiff'] = 'image/tiff'; // Zeile um tiff zu erlauben
$mimes['ttf'] = 'application/ttf'; // Zeile um ttf zu erlauben


// Mit dieser Zeile können Sie auch erlaubte MIME-Typen deaktivieren.
unset( $mimes['exe'] );  // Zeile um exe zu verbieten

return $mimes;
}
add_filter( 'upload_mimes', 'weitere_mime_types' );

Dennoch gibt es bei einigen Hosting-Anbietern zusätzliche Beschränkungen. In solchen Fällen erscheint trotz der Anpassung in der functions.php weiterhin die Meldung: „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt“.

Viele Hoster begrenzen aus Sicherheitsgründen dauerhaft die erlaubten Dateitypen oder die maximal zulässige Dateigröße für Uploads. In diesem Fall hilft eine Anpassung in WordPress selbst nicht weiter. Es empfiehlt sich, direkt den Hosting-Anbieter zu kontaktieren und nach einer Freigabe der benötigten Dateitypen zu fragen.

2. Temporär in der wp-config.php per Allow_Unfiltered_Uploads Filter erlauben

Über die Datei wp-config.php im WordPress-Stammverzeichnis lässt sich theoretisch der ungefilterte Upload sämtlicher Dateitypen erlauben. Wird der Filtereintrag auf true gesetzt, können alle Datei- und MIME-Typen ohne Einschränkung in die Mediathek hochgeladen werden.

Aus Sicherheitsgründen sollte diese Option jedoch nur vorübergehend aktiviert und anschließend wieder auf false gesetzt werden. Andernfalls könnten Benutzer – bewusst oder unbewusst – Dateien hochladen, die schädlichen Programmcode enthalten.

Besonders vorsichtig sollte man beim Upload von SVG-Dateien sein. SVG ist ein XML-basiertes Vektorformat, das JavaScript enthalten kann. Dadurch besteht grundsätzlich ein Risiko für XML- und XSS-Angriffe, wenn Dateien nicht aus vertrauenswürdigen Quellen stammen. Daher empfiehlt sich der Einsatz dieser Einstellung ausschließlich für kurze Zeiträume und nur, wenn der Upload bestimmter Dateiformate unbedingt erforderlich ist.

Wichtig: Bitte vor dem Ändern der Datei immer eine lokale Sicherung / Backup machen!

// Füge in der Datei wp-config.php den folgenden Codeausschnitt über der /* That’s all, stop editing! Happy blogging. */ Zeile hinzu:

define('ALLOW_UNFILTERED_UPLOADS', true);

3. Alternativer Einsatz eines Plugins wie WP Add Mime Types

Zu guter Letzt kann man auch einfach ein WordPress-Plugin einsetzen. Hier bietet sich WP Add Mime Types an, das die Aktivierung von zusätzlichen Datei-Typen und Mime-Typen ermöglicht.

Schreibe einen Kommentar