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.

Sollte der Eintrag in der wp-config.php nicht ausreichend sein, müssen wir den SVG-Dateityp für deine WordPress-Installation aktivieren. Öffne dazu deine functions.php deines (Child-)Themes und trage folgende Zeilen ein.

function dwp_mime($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'dwp_mime');

Damit solltest du keine Probleme mehr haben, deine SVG-Datei in die Mediathek hochzuladen.

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 und sollten sonst keinen unsicheren Code enthalten.

<?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 (der 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 noch fehlen. Um komplett sicher zu gehen, kannst du auch Online-Tools wie dieses hier nutzen, um deine SVG-Datei zu „säubern“ und korrekt zu formatieren.

Weitere 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, wodurch die Dateiendungen .svg sowie .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(
        'svg'     => 'image/svg+xml',
        '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 01.06.2021 – SVG-Upload – Anpassung via functions.php
Update 07.04.2020 – Ergänzung zusätzlicher Dateitypen
Update 30.10.2019 – Ergänzung zu SVG-Grafiken

18 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
  3. Hallo, ich habe ihm Plugin: (WP Config File Editor) die Eingabe getätigt, damit ich Bilder hochladen kann. Allerdings kommt dann diese Fehlermeldung wenn ich auf Cusomizer (Ozean Extra) gehe:

    Es gab einen kritischen Fehler auf deiner Website. Bitte überprüfe den Posteingang deiner Website-Administrator-E-Mail-Adresse für weitere Anweisungen.

    Erfahre mehr über die Problembehandlung in WordPress.

    Wenn ich allerding das Plugin (WP Config File Editor) deaktiviere funktioniert das einwandfrei. Was habe ich falsch gemacht oder wie kann ich es rückgängig machen?

    Vielen Dank

    Antworten
    • Hi Sergej,
      das ist eine gute Frage und ich kann mir vorstellen, dass lediglich ein Zeichen falsch ist oder vergessen wurde. Dazu müsste ich allerdings deine Änderungen sehen oder die genaue Fehlerbeschreibung kennen. Hierzu müsstest du die Fehler via „define('WP_DEBUG', true);“ (ohne „“) in deiner wp-config.php aktivieren. Alternativ sollte der Fehler auch in der genannten Mail an dich stehen.
      Was das Plugin „WP Config File Editor“ angeht, denke ich werden deine Anpassungen wieder zurückgesetzt, sobald du das Plugin deaktivierst. Somit besteht auch kein Fehler mehr. Aber das ist nur eine Vermutung, weil ich das Plugin nicht kenne und eher die Bearbeitung via (S)FTP empfehlen würde.

      Antworten
      • (S)FTP – du meinst vom Webspace aus oder von WordPress? Da ich nicht immer auf meinen Webspace Hoster gehen möchte habeich mir das Plugin extra installiert um von dort aus direkt Befehle zu erteilen. Es kam eine E-Mail richtig – dort stand: das Ocean Extra einen Fehler hat. Hier die Meldung: „In diesem Fall hat WordPress einen Fehler in einem deiner Plugins, Ocean Extra, abgefangen.“ Sobald ich das Plugin „WP Config File Editor“ deaktiviere funktionier Ocean Extra wieder und ich kome auch in den Customizer. Okay nehmen wir an ich deaktiviere das Plugin „WP Config File Editor“ damit ich wieder arbeiten kann – ich aber mehrere Bilder auf meine WordPress Seite hochladen möchte – dieser aber blockiert mit der Meldung: „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt“, versuche es dann von FTP aus. Kommt mit großer Wahrscheinlich das gleiche Szenario. Weitere Frage: Damit ich Bilder hochladen möchte muss ich immer wieder ins FTP und den Befehl „true“ durch „false“ ersetzen“? Oder habe ich einen Denkfehler? Klär mich auf:D

        Antworten
        • Lass uns bitte deine Fragen und die Inhalte getrennt betrachten, da ich für den Aufbau deiner Website keine umfangreiche Analyse im Ganzen geben kann. Ohne Link oder Einblick in den bereits erwähnten Fehlerlog würde das ohnehin auch dem Lesen aus deiner Kristallkugel gleich kommen. 😀

          1. Die Art der Bearbeitung deiner Seite in Code-Bereichen wie der wp-config.php oder functions.php solltest du je nach eigenem Level selbst entscheiden. Siehe auch im Kommentar über uns. Ich kenne die einzelnen Funktionen des genannten Plugins (WP Config File Editor) nicht und schlage hier eine pluginfreie Lösung vor, um es schlank zu halten. Die Code-Bearbeitung mittels Plugins hat durchaus den Vorteil, dass diese Einträge über das Backend getätigt werden können. Teils gibt es aber auch den Nachteil, dass bei einem Fehler nurnoch der Weg per FTP gegangen werden kann, da die Bearbeitung über das Backend nicht mehr möglich ist. Aus diesem Grund habe ich den Zugang zum FTP (Webspace) erwähnt. Solltest du bereits erfahrener sein, kannst du gerne dafür Plugins nutzen, solltest aber immer Zugriff per FTP parat haben um genannte Probleme beheben zu können.
          2. Wenn der Fehler aussagt, dass „Ocean Extra“ ein Problem hat, würde ich dort nach der Ursache suchen. Die Bewertungen und Support-Fragen, lassen zumindest vermuten, dass nicht alles ganz rund läuft. Aber auch hier habe ich keine Ahnung, was das Plugin im einzelnen macht und tippe nur darauf, dass sich da etwas nicht verträgt.
          3. Zurück zur eigentlichen Frage und ob du immer wieder „true“ durch „false“ beim Eintrag in der wp-config.php ersetzen musst. Diese Methode ist eher für Ausnahmefälle zu sehen, da du hier Tür und Tor für alle Dateien im Upload öffnest, was ein deutliches Sicherheitsrisiko für deine Seite bedeuten kann. Normalerweise solltest du jegliche Art Bilder OHNE diese Einstellung hochladen können, weshalb dies mMn keine Dauerlösung sein sollte. Um welches Dateiformat handelt es sich denn bei dir?
          Antworten
          • Dateityp des Bilder: Symbol (.ico) (habe gerade eben nochmals geöffnet und mir ist aufgefallen, dass es sich durch Paint öffnen lässt. Sobald ich die Datei „Öffnen mit“ – Fotos – wähle, ändert sich die Datei auf: ICO-Datei (.ico).

            Meine große besteht darin, dass ich keine großen Programmier Kenntnisse verfüge und das ich den Befehl im FTP (Webspace) wieder falsch eintippen sollte, weil ich nicht weiß wie man es rückgängig machen kann – außer man führt davor einen Back up durch ggf. man ruft den Webhoster an und macht es rückgängig?

            Ich werde das Plugin somit löschen und nur noch durch FTP Webspace Befehle ausführen – damit ich diese Dateibilder hochladen kann – welchen Befehl sollte ich den genau jetzt eintippen per „Kopieren und Einfügen“ Taste? Und nach dem Hochladen der Bilder, um die Website nicht zu „gefährden“ was genau eintippen? Sprich: einfach das „true“ durch „false“ ersetzen und es ist alles beim alten?

            Danke für die schnelle Antwort👍

          • Ich habe bisher verstanden, dass du eine Datei (.ico) hochladen möchtest und das nicht klappt. Allerdings sollte der Upload für Grafiken (jpg, png, gif) und Icons (.ico) jederzeit und ohne extra Einstellungen möglich sein.

            Ich kann mir vorstellen, dass deine Datei ggf. eine falsche Endung hat. Soll heißen, wenn du eine Grafik (z.B. jpg) abspeicherst und die Endung zu „.ico“ nur im Dateinamen änderst, ist der Dateityp weiterhin falsch. Dies erkennt WordPress und verhindert den Upload, weil es merkt, dass die Endung und der Inhalt der Dateitype (.ico) nicht zusammenpassen. Das gleiche passiert, wenn du deine Datei -wie beschrieben- mit (öffnen mit) „Fotos“ öffnest. Hier erkennt das Programm, dass es sich um eine andere Datei handelt und benennt diese wieder um.

            Versuch doch einfach mal diese korrigierte .ico-Datei hochzuladen. Kommt der gleiche Fehler dann auch?

            Ich hoffe das bringt etwas Licht ins Dunkel? 🙂

Schreibe einen Kommentar