Uploadfilter bei WordPress? „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.“

Möchtest du etwas (außer Bilder) in die Mediathek von WordPress laden oder einen Import deiner Artikel bei Woocommerce starten, aber die Fehlermeldung „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.“ macht dir einen Strich durch die Rechnung? Kein Grund zur Panik! Das ist eine Sicherheitsmaßnahme von WordPress, damit sich keine unerwarteten Dateien auf den Server laden lassen, womit u.A. auch Schadcode eingeschleußt werden kann.

Aber nochmal in Ruhe von vorn… Die Mediathek von WordPress dient im Allgemeinen dazu, nicht nur Bilder, sondern auch andere Dateien für deine Website zu verwalten. Möchtest du nun z.B. eine beliebige Datei hochladen und zum Download auf deiner Seite anbieten, kann es sein, dass die Mediathek dir den Upload verweigert. Da WordPress nicht weiß, was sich in deiner Datei befindet, blockt es unbekannte Typen aus Sicherheitsgründen und verhindert so, dass sie überhaupt auf dem Server abgelegt werden kann. Während eine gepackte ZIP-Datei aus dem Stand funktionieren sollte, klappt es z.B. mit einer RAR-Datei nicht.

Das moderne und webkonforme SVG-Format wird leider auch geblockt. Dieser Dateityp kann neben den reinen Vektorinformationen des Bildes auch Scripte mit sich bringen, welche deine Seite angreifen können. Und auch hier ist der Upload in die Mediathek vorerst gesperrt.

Ein weiteres Beispiel dafür, dass der Dateityp nicht erlaubt ist, finden wir auch bei Woocommerce. Wenn du z.B. Artikel per CSV-Datei importieren möchte, folgt die unerwartete Fehlermeldung prompt und sorgt für Verwirrung, da man sie schließlich auch exportieren kann.

Uploads für alle Dateitypen erlauben

Mit folgender Zeile in der Konfigurationsdatei wp-config.php, kannst du den WordPress eigenen „Uploadfilter“ einfach deaktivieren, bzw. um genau zu sein, den Upload aller Dateien für deine Seite freischalten. Kopiere dazu einfach den Befehl und füge ihn am Ende deiner wp-config.php ein. (Die Datei befindet sich auf dem Server im Hauptverzeichnis deiner Website.)

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Nun sollte es auch mit dem gewünschten Upload klappen und deine Datei landet in der Mediathek, statt geblockt zu werden.

Entferne oder deaktivere (statt „true“ einfach „false“ eintragen) nach Möglichkeit diesen Eintrag wieder, sobald du fertig bist mit deinem Upload, um die Sicherheit deiner Seite nicht unnötig zu gefährden.

Besonderheit bei SVG-Grafiken

Beim hochladen von SVG-Dateien gibt es ab WordPress 5 noch eine Kleinigkeit zu beachten. Diese Vektorgrafiken müssen in der ersten Zeile mit einer XML-Deklaration wie der nachfolgenden beginnen um akzeptiert zu werden.

<?xml version="1.0" encoding="utf-8"?>

Je nachdem wie du deine SVG-Grafiken erstellst, kann es vorkommen, dass die genannte Deklaration fehlt. Bei Adobe Illustrator ist die Deklaration bereits enthalten, wobei du bei Inkscape darauf achten solltest, dass sie im Speicherdialog (SVG-Ausgabe) nicht entfernt wird. Im Zweifel öffne deine Grafik mit einem Texteditor (z.B. Sublime) und ergänze die Angabe in der ersten Zeile, sollte sie fehlen. Alternativ kannst du auch Online-Tools wie dieses hier nutzen, um deine SVG-Datei zu „säubern“.

Zusätzliche Dateitypen für den Upload freigeben

Grundsätzlich sind verschiedenste Dateiformate für deinen Upload in WordPress freigegeben, welche mit dem o.g. Eintrag in der wp-config.php problemlos hochgeladen werden können. Diese umfassen die meisten gängigen Formate für Bilder, Texte, Audio und Video und werden unter /wp-includes/functions.php in der Whitelist-Funktion wp_check_filetype() angegeben. Sollte dein Upload trotz Anpassung der wp-config.php also nicht klappen, kann es sein, dass du deinen gewünschten Dateityp erst dieser Liste hinzufügen musst.

Schriftarten sind in dieser Liste nicht enthalten und führen zum bekannten Fehler beim Upload. Für z.B. eine .ttf-Datei kannst du das in der functions.php deines (Child-)Themes mit folgendem Schnipsel erledigen.

function dwp_mime($mimes) {
    $mimes['ttf'] = 'application/ttf';
    return $mimes;
}
add_filter('upload_mimes', 'dwp_mime');

Möchtest du weitere unbekannte Dateitypen hinzufügen, kannst du alternativ den folgendem Schnipsel verwenden, wo die Dateiendungen .ttf und .otf für den Upload freigegeben wird. Einfach das gewünschte Dateiformat in einer neuen Zeile ergänzen, sollten weitere unbekannte Dateien hinzukommen.

function dwp_mimes() {
    $mime_types = array(
        'ttf'     => 'application/ttf',
        'otf'     => 'application/otf',
    );
    return $mime_types;
}
add_filter( 'upload_mimes', 'dwp_mimes' );

Beachte bitte, dass du die Änderung der wp-config.php weiterhin aktiv (true) haben musst, damit der Upload klappt.
Eine Übersicht der sog. „Mime-Typen“ findest du hier.


Update 07.04.2020 – Ergänzung zusätzlicher Dateitypen
Update 30.10.2019 – Ergänzung zu SVG-Grafiken

4 Gedanken zu „Uploadfilter bei WordPress? „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.““

  1. Hey, funktioniert bei mir leider auch nicht!

    Ich möchte eine Schriftart hochladen mit dem format ttf.

    was könnte ich noch probieren?

    Antworten
    • Hey Christian.
      Grundsätzlich sind verschiedenste Dateien in WordPress freigegeben. Diese werden unter /wp-includes/functions.php in der Whitelist-Funktion wp_check_filetype() angegeben. Sollte es mit dem Eintrag in der wp-config.php in deinem Fall also nicht getan sein, musst du deinen gewünschten Dateityp erst dieser Liste hinzufügen. Dies kannst du in der functions.php deines (Child-)Themes mit folgendem Schnipsel erledigen.

      function dwp_mime($mimes) {
          $mimes['ttf'] = 'application/ttf';
          return $mimes;
      }
      add_filter('upload_mimes', 'dwp_mime');
      

      Möchtest du weitere Dateitypen hochladen, kannst du alternativ den folgendem Schnipsel verwenden. Einfach das gewünschte Dateiformat in einer neuen Zeile ergänzen, sollte weitere Dateien hinzukommen.

      function dwp_mimes() {
          $mime_types = array(
              'ttf'     => 'application/ttf',
              'otf'     => 'application/otf',
          );
          return $mime_types;
      }
      add_filter( 'upload_mimes', 'dwp_mimes' );
      

      Damit sollte dein Upload der Schriftart-Datei(en) klappen.

      Der im Beitrag erwähnte Eintrag in der wp-config.php muss sicher weiter aktiviert sein für den Upload. Bitte nicht vergessen diesen wieder zu entfernen oder auf „false“ zu stellen, sobald du fertig bist.

      Antworten

Schreibe einen Kommentar