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

12 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
    • Ich glaube das liegt eher nicht an WordPress. 😉
      Aber kann es sein, dass die Datei evtl. nicht die richtige Endung hat und deshalb blockiert wird? Dies kann passieren, wenn du z.B. eine webp- oder jpg-Datei mit .png-Endung nutzt. Im Zweifel sende die Datei vorher nochmal durch einen Konverter oder Bildbearbeitungsprogramm und versuche den Upload erneut. Sollte auch das nicht klappen, müsstest du einen Blick auf deinen Server werfen (png-Dateien erlaubt oder Upload-Verzeichnis fürs schreiben freigegeben?), da auch hier mögliche Ursachen liegen können.

      Antworten
  2. Hallo Maik,

    bei mir funktioniert es leider auch nicht. Kannst du mir helfen? Ich finde bei mir das wp-config.php bei mir nicht, nur wpml-config.xml ist das das gleiche?

    Antworten
    • Hallo Johanna,
      die wp-config.php findest du direkt im Hauptverzeichnis deiner Website und deine genannte wpml-config.xml ist für etwas anderes da (Übersetzung).

      Bezüglich deiner Uploadproblematik mit dem PNG-Bild würde ich zuerst prüfen, ob ein Upload allgemein auf der Seite klappt, da im normalen Fall Bilder mit der Endung .jpg, .jpeg, .png, .gif und .ico funktionieren sollten, ohne das du zusätzliche Einstellungen treffen musst. Sollte ein Upload anderer Dateien funktionieren, gehe sicher, dass die Bilddatei selbst auch korrekt ist. Also, dass es kein JPG-Bild mit falscher Dateiendung ist. Sollte das auch alles passen und es immernoch nicht klappen, müsstest du dir ggf. das Hosting näher anschauen und prüfen ob die z.B. das Modul „GD Library“ oder „PHP Imagemagick“ installiert ist. Wenn all das nicht klappt, nenne mir gerne die genaue Fehlermeldung, welche du beim Uplaod erhältst und wir finden sicher eine Lösung.

      Melde dich gerne nochmal mit dem Ergebnis. Bis dahin wünsche ich frohe Ostern.

      Antworten
      • Hallo Maik, es hat lange nicht geklappt und ich habe die wp-config.php trotz langem suchen nicht gefunden! Kann es sein, dass die versteckt ist?
        Habe dann das WP Config File Editor Plugin runtergeladen und es da konfiguriert! Dann hat es funktioniert!

        Danke dir , lg Johanna

        Antworten
        • Das freut mich zu lesen, dass es geklappt hat.

          Am besten greifst du via FTP auf die Dateien deiner Website zu. Solltest du es über das Backend von WordPress versucht haben, wirst du sicher nur die Dateien deines Themes gesehen haben, kann das sein?

          Der Zugriff per (S)FTP ist insofern praktischer, weil du z.B. bei Ausfall eines Plugins handlungsfähig für die gesamte Seite bleibst und bei einem Fehler nicht auf das Backend angewiesen bist. Gerade die wichtigsten Dateien wie die wp-config.php oder die functions.php (Child-Theme) sollte man direkt auf dem Server bearbeiten können, da bei Fehlern evtl. die gesamte Website nicht erreichbar ist und somit auch das Plugin oder der Backend-Bereich zum ändern nicht mehr funktioniert.

          Antworten

Schreibe einen Kommentar