By |
Fix: File Type Not Permitted — SnapPress

"Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt." — So behebst du den WordPress-Fehler (2026)

TL;DR

Deine Dateiendung oder dein MIME-Typ steht nicht auf der WordPress-Positivliste. Sauberste Lösung: ein upload_mimes-Filter. Bei iPhone-HEIC-Fotos: direkt auf dem Gerät mit SnapPress zu JPEG konvertieren.

Kurze Antwort: Der Fehler bedeutet, dass WordPress die Dateiendung oder den MIME-Typ nicht als eines seiner erlaubten Formate erkannt hat. Die sauberste dauerhafte Lösung ist ein kleiner upload_mimes-Filter in der functions.php oder in einem eigenen Plugin. Wenn du HEIC-Fotos vom iPhone hochlädst, ist der einfachste Weg, sie vor dem Upload direkt auf dem Gerät mit einem Tool wie SnapPress zu JPEG zu konvertieren. Aktiviere niemals ALLOW_UNFILTERED_UPLOADS in der wp-config.php als dauerhafte Lösung — das schaltet sämtliche Upload-Sicherheitsprüfungen von WordPress ab.

Wenn dir in WordPress "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt" begegnet ist, bist du nicht allein. Es ist eine der weltweit meistgesuchten WordPress-Fehlermeldungen, und die Formulierung führt in die Irre — WordPress hat nichts Bösartiges entdeckt. Es ist lediglich auf eine fest hinterlegte Positivliste gestoßen, und deine Dateiendung oder dein MIME-Typ steht nicht auf dieser Liste.

Dieser Leitfaden erklärt, warum der Fehler auftritt, zeigt die vier produktionserprobten Wege, ihn dauerhaft zu beheben, die Sicherheitsabwägungen jedes Ansatzes und eine konkrete Lösung pro Dateityp. Am Ende weißt du genau, welche Methode zu deiner Situation passt und wie du dabei vermeidest, deine Website zu beschädigen.

WordPress file type not permitted error
WordPress blockiert unerlaubte Dateitypen mit diesem Sicherheitsfehler.

Warum dieser Fehler auftritt (die MIME-Typ-Positivliste)

Jeder WordPress-Upload läuft durch die Funktion wp_check_filetype_and_ext(). Diese Funktion vergleicht zwei Dinge mit einer fest hinterlegten Positivliste:

  1. Die Dateiendung (der Teil nach dem Punkt im Dateinamen)
  2. Den MIME-Typ, den die PHP-Erweiterung finfo erkennt

Steht eines von beiden nicht auf der Liste, die get_allowed_mime_types() zurückgibt, wird der Upload mit "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt" abgelehnt. Die Liste ist in wp-includes/functions.php definiert und enthält standardmäßig rund 60 Einträge — gängige Bilder, Video, Audio, Archive und Dokumentformate.

Der "Sicherheits"-Rahmen existiert, weil der ursprüngliche Grund für die Positivliste war, Angreifer daran zu hindern, ausführbaren Code (PHP-Dateien, Shell-Skripte) hochzuladen, den WordPress dann als URL ausliefert. In diesem engen Sinn ist der Filter eine echte Sicherheitsgrenze. Aber derselbe Filter blockiert eine lange Liste legitimer Formate, die schlicht nicht in die Core-Liste aufgenommen wurden:

  • HEIC vom iPhone (in WordPress 6.7 ergänzt, Ende 2024)
  • WebP (in WordPress 5.8 ergänzt, 2021)
  • AVIF (in WordPress 6.5 ergänzt, März 2024)
  • SVG (nie ergänzt — erfordert Plugin oder Filter)
  • WOFF/WOFF2-Schriftarten (nie ergänzt)
  • STL, OBJ, GLB, 3D-Modellformate (nie ergänzt)

Wenn deine WordPress-Version älter ist als die Aufnahme des jeweiligen Formats, oder wenn dein Hoster einen angepassten Build betreibt, der neuere MIME-Typen entfernt, läufst du selbst bei eigentlich unterstützten Formaten in den Fehler.

Vorläufige Abhilfe: Prüfe zuerst die Endung und die Datei

Bevor du Servereinstellungen änderst, schließe zwei einfache Ursachen aus:

Die Endung ist falsch oder fehlt

Dateien, die aus Messenger-Apps exportiert wurden, verlieren manchmal ihre Endung oder bekommen eine generische wie .bin. Klicke mit der rechten Maustaste auf die Datei, benenne sie mit der korrekten Endung um (.jpg, .png usw.) und versuche den Upload erneut. Wenn es klappt, war der Dateiinhalt in Ordnung; nur die Endung war das Problem.

Die Datei ist beschädigt

Wenn dein Browser die Datei aus einem Chat oder einer E-Mail heruntergeladen hat und der Download unterbrochen wurde, kann die Datei abgeschnitten sein. PHPs finfo erkennt dann den falschen MIME-Typ — die Datei sieht wie binärer Müll statt wie ein Bild aus. Lade das Original erneut von der Quelle herunter und versuche es noch einmal.

Diese beiden Prüfungen dauern 30 Sekunden und lösen etwa 20 % der "Dieser Dateityp ist nicht erlaubt"-Fälle, die ich sehe. Die restlichen 80 % sind echte Positivlisten-Probleme, die eine der folgenden dauerhaften Lösungen brauchen.

Die 4 dauerhaften Lösungen

Lösung 1: MIME-Typ per upload_mimes-Filter hinzufügen (empfohlen)

Das ist die sauberste Produktionslösung. Füge Folgendes in die functions.php deines Child-Themes ein, oder — besser — in ein kleines eigenes Plugin, damit die Änderung Theme-Updates übersteht:

<?php
add_filter('upload_mimes', function($mimes) {
  $mimes['heic'] = 'image/heic';
  $mimes['heif'] = 'image/heif';
  return $mimes;
});

add_filter('wp_check_filetype_and_ext', function($data, $file, $filename, $mimes) {
  $filetype = wp_check_filetype($filename, $mimes);
  if (in_array($filetype['ext'], ['heic', 'heif'], true)) {
    $data['ext']  = $filetype['ext'];
    $data['type'] = $filetype['type'];
  }
  return $data;
}, 10, 4);

Ersetze heic und image/heic durch die Endung und den MIME-Typ, die du brauchst. Der erste Filter fügt den Typ zur Positivliste hinzu. Der zweite Filter behandelt einen subtilen Bug: Auf vielen Servern meldet PHPs finfo ungewöhnliche MIME-Typen als application/octet-stream, wodurch wp_check_filetype_and_ext() den Upload ablehnt, obwohl die Endung erlaubt ist. Der zweite Filter erzwingt die Erkennung, wenn die Dateiendung passt.

Eine ausführlichere Anleitung speziell zu HEIC findest du in WordPress Allowed MIME Types: How to Enable HEIC Uploads (Guide 2026, auf Englisch).

Lösung 2: Ein Plugin verwenden (WP Add Mime Types)

Wenn du kein PHP bearbeiten willst, bietet dir das Plugin WP Add Mime Types (kostenlos, über 80.000 Installationen, seit 2014 aktiv gepflegt) ein Einstellungsfeld mit zwei Spalten: Endung und MIME-Typ. Zeile hinzufügen, speichern, fertig. Das Plugin führt unter der Haube denselben upload_mimes-Filter aus.

Zwei produktionserprobte Alternativen:

  • File Upload Types by WPForms — Checkbox-basierte Oberfläche mit vordefinierten Einträgen für HEIC, WebP, AVIF, SVG und über 40 weitere Formate. Ideal, wenn du den MIME-Typ-String nicht auswendig kennst.
  • Disable Real MIME Check — ein Ein-Funktions-Plugin, das den finfo-Validierungsschritt von PHP abschaltet. Nützlich in Grenzfällen, in denen die Endung auf der Positivliste steht, finfo den MIME-Typ aber falsch meldet. Sparsam einsetzen; der Preis ist eine schwächere Validierung.

Lösung 3: ALLOW_UNFILTERED_UPLOADS in der wp-config.php (fortgeschritten, mit Warnung)

WordPress hat eine Notluke in der wp-config.php:

define('ALLOW_UNFILTERED_UPLOADS', true);

Mit dieser Konstante können Administratoren jeden Dateityp hochladen, einschließlich PHP-Skripten. Jede MIME-Typ-Prüfung wird umgangen.

Verwende das nicht in Produktion. Die Konstante schaltet sämtliche Upload-Sicherheitsprüfungen von WordPress ab. Ein Angreifer, der irgendein Konto mit Admin-Rechten kompromittiert, kann PHP-Dateien direkt nach wp-content/uploads hochladen und ausführen. Selbst Setups, die heute sicher aussehen, haben oft ein vergessenes "Abonnent-mit-Admin-Rolle"-Konto aus einem alten Plugin oder Import.

Der einzige legitime Einsatz ist eine lokale Entwicklungsumgebung, in der du das Upload-Verhalten debuggst. Kommentiere die Zeile aus, bevor du auf Staging pushst.

Lösung 4: Auf dem Gerät konvertieren mit SnapPress (für iPhone-Nutzer)

Speziell für iPhone-Foto-Uploads ist die robusteste Lösung, HEIC bereits auf dem Gerät zu JPEG zu konvertieren, bevor die Datei deinen Server überhaupt erreicht. SnapPress liest HEIC aus deiner Fotos-Mediathek, dekodiert es mit der iOS-Bildpipeline, die Apple über alle iOS-Versionen hinweg pflegt, und lädt ein JPEG über die REST-API in deine WordPress-Mediathek hoch.

Deine functions.php bleibt unangetastet. Dein upload_mimes-Filter bleibt unangetastet. Die Datei, die auf deinem Server landet, ist ein Standard-JPEG, das jede WordPress-Installation seit 2003 unterstützt.

Diesen Weg empfehle ich allen, die mehrere WordPress-Websites verwalten oder sich mit PHP-Bearbeitung nicht wohlfühlen. Der Kompromiss: Er löst nur den iPhone-HEIC-Fall — für andere Dateitypen brauchst du weiterhin eine der Lösungen 1-3.

Lösungen pro Dateityp

Der exakte MIME-Typ ist entscheidend. Hier sind die produktionserprobten Einträge für die häufigsten Formate, die auf "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt" stoßen.

HEIC (iPhone-Fotos)

$mimes['heic'] = 'image/heic';
$mimes['heif'] = 'image/heif';

Füge immer beide hinzu. iPhones erzeugen gelegentlich .heif-Dateien für Bildsequenzen und Serienaufnahmen. Nach dem Hinzufügen des Filters läuft der WordPress-Upload durch — aber die meisten Besucher-Browser können HEIC nicht darstellen, du brauchst also zusätzlich serverseitige Konvertierung (ShortPixel) oder clientseitige Konvertierung (SnapPress). Die ganze Geschichte steht in iPhone-HEIC-Fotos und WordPress.

WebP

$mimes['webp'] = 'image/webp';

WordPress 5.8 (Mitte 2021) hat WebP in die Core-Positivliste aufgenommen. Wenn deine WordPress-Version aktuell ist, ist dieser Filter überflüssig. Auf einem älteren Build oder bei einem Hoster mit eigenen Beschränkungen schaltet der Filter den WebP-Upload frei.

SVG

$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';

Hör nicht beim Filter auf. SVG ist XML und kann Inline-JavaScript enthalten, das im Browser von Administratoren ausgeführt wird. Installiere immer das Plugin Safe SVG (kostenlos), das SVG sowohl freischaltet als auch eingehende Dateien über die svg-sanitizer-Bibliothek bereinigt — Script-Tags, Event-Handler und externe Entity-Referenzen werden entfernt. Wenn nur vertrauenswürdige Designer SVG hochladen sollen, umschließe den Filter mit einer current_user_can('manage_options')-Prüfung.

AVIF

$mimes['avif'] = 'image/avif';

WordPress 6.5 (März 2024) hat AVIF in die Core-Positivliste aufgenommen. Der Filter wird nur auf älteren Installationen oder bei speziellen Hostern gebraucht. AVIF komprimiert bei gleicher wahrgenommener Qualität rund 20 % kleiner als HEIC und hat breitere Browser-Unterstützung — das macht es zum besseren Auslieferungsformat, wenn dein Server libavif hat.

MP4-Video

$mimes['mp4'] = 'video/mp4';
$mimes['m4v'] = 'video/mp4';
$mimes['mov'] = 'video/quicktime';

Diese stehen normalerweise auf der Core-Positivliste. Wenn du den Fehler aber speziell bei MP4 bekommst, liegt es oft daran, dass der MIME-Typ der Datei als video/x-m4v oder application/octet-stream erkannt wird. Füge den wp_check_filetype_and_ext-Filter aus Lösung 1 hinzu, um die Erkennung zu erzwingen.

ZIP-Archive

$mimes['zip'] = 'application/zip';
$mimes['7z'] = 'application/x-7z-compressed';

ZIP steht standardmäßig auf der Core-Positivliste, aber manche Sicherheits-Plugins (Wordfence, Sucuri) überschreiben sie, weil ZIPs ausführbare Inhalte enthalten können. Trage den Typ zusätzlich zum WordPress-Filter auch in den Plugin-Einstellungen in die Whitelist ein.

Sicherheitsüberlegungen (warum die Beschränkung Standard ist)

WordPress beschränkt Dateitypen standardmäßig aus einem zentralen Grund: PHP-Dateien in wp-content/uploads können auf den meisten Serverkonfigurationen als Code ausgeführt werden. Würde WordPress jede Dateiendung akzeptieren, könnte ein Angreifer, der irgendein Autoren- oder Mitarbeiterkonto kompromittiert, eine .php-Shell hochladen, deren URL aufrufen und beliebigen Code auf deinem Server ausführen.

Die Positivliste ist die günstigste Verteidigung. Selbst wenn jede andere Sicherheitsschicht versagt — Passwort-Wiederverwendung, Plugin-Schwachstelle, Supply-Chain-Kompromittierung —, verhindert der Upload-Filter, dass PHP jemals das Uploads-Verzeichnis erreicht.

Drei Grundsätze beim Erweitern der Positivliste:

  1. Füge nur hinzu, was du wirklich brauchst. Wenn du einmal im Monat HEIC hochlädst, füge HEIC hinzu. Erlaube nicht vorsorglich jedes Format, das du irgendwann brauchen könntest.
  2. Erlaube niemals PHP-, ausführbare oder Skript-Endungen. .php, .phtml, .exe, .sh, .cgi, .pl — keine davon gehört unter irgendwelchen Umständen nach wp-content/uploads.
  3. Bereinige Formate, die eingebettete Inhalte erlauben. SVG (JavaScript), PDF (JavaScript-Aktionen), HTML (alles). Verwende ein Sanitizing-Plugin oder konvertiere beim Upload in ein flaches Bildformat.

Fehlerdiagnose, wenn Lösung 1 nicht greift

Du hast den Filter eingebaut, die Datei hochgeladen, und siehst trotzdem "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt." Drei Dinge zum Prüfen:

Der Filter steht an der falschen Stelle

Stelle sicher, dass die Datei mit dem Filter tatsächlich geladen wird. Wenn du ihn in die functions.php deines Child-Themes eingefügt hast, aber das Parent-Theme aktiv ist, läuft das Snippet nicht. Verschiebe es in ein eigenes Plugin, um die Theme-Abhängigkeit zu beseitigen.

Ein Sicherheits-Plugin überschreibt die Positivliste

Wordfence, Sucuri, iThemes Security und ähnliche Plugins legen ihre eigene Upload-Validierung über den WordPress-Core. Trage den MIME-Typ zusätzlich zu deinem upload_mimes-Filter auch in den Einstellungen des Sicherheits-Plugins in die Whitelist ein.

PHPs finfo meldet den falschen MIME-Typ

Das ist der häufigste stille Fehler. Die Dateiendung steht auf der Positivliste, aber PHPs finfo-Modul liefert application/octet-stream statt des erwarteten MIME-Typs. WordPress sieht eine Diskrepanz und lehnt ab. Der wp_check_filetype_and_ext-Filter aus Lösung 1 deckt diesen Fall ab. Vergewissere dich, dass er zusammen mit dem upload_mimes-Filter eingebunden ist, nicht separat.

Eine breitere Diagnose-Checkliste für WordPress-Upload-Fehler findest du in Cannot Upload Images to WordPress? 8 Causes and How to Fix Each One (auf Englisch).

iPhone-Foto-Uploads: der Workflow, der diesen Fehler komplett vermeidet

Alles oben Beschriebene gilt für den direkten Upload von rohem HEIC, SVG, AVIF und anderen Formaten in die WordPress-Mediathek. Speziell für iPhone-Foto-Workflows gibt es einen einfacheren Weg: vor dem Upload auf dem Gerät konvertieren.

SnapPress liest HEIC aus deiner Fotos-Mediathek, dekodiert es mit der iOS-Bildpipeline, die Apple mit jedem iOS-Release pflegt und aktualisiert, und lädt ein JPEG über die REST-API in deine WordPress-Mediathek hoch. Weil die ankommende Datei ein Standard-JPEG ist, siehst du "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt" nie wieder — weder auf dieser Website noch auf irgendeiner anderen WordPress-Website, die du verbindest.

Für Massen-Publishing-Workflows vom iPhone zu WordPress sieh dir den Vergleich in Bilder in Massen vom Smartphone zu WordPress hochladen: der komplette Leitfaden und die App-Übersicht in Die 5 besten WordPress-Foto-Upload-Apps im Vergleich an.

Zusammenfassung

  • Der Fehler bedeutet, dass deine Dateiendung oder dein MIME-Typ nicht auf der WordPress-Positivliste steht, die get_allowed_mime_types() zurückgibt.
  • Sauberste Lösung: einen upload_mimes-Filter in einem eigenen Plugin hinzufügen (Lösung 1).
  • Lösung ohne Code: Plugin WP Add Mime Types oder File Upload Types (Lösung 2).
  • Niemals als Dauerlösung: ALLOW_UNFILTERED_UPLOADS in der wp-config.php (Lösung 3).
  • iPhone-HEIC-Workflow: auf dem Gerät mit SnapPress konvertieren, damit die Datei schon als JPEG bei WordPress ankommt (Lösung 4).

Wenn du regelmäßig iPhone-Fotos auf WordPress veröffentlichst, eliminiert der Konvertierungsweg auf dem Gerät diese Fehlerklasse komplett. Starte kostenlos mit SnapPress, verbinde dich über das SnapPress-Connect-WordPress-Plugin, und beim nächsten Mal, wenn du Fotos im Share Sheet auswählst, werden sie als JPEG hochgeladen — ohne Filter, ohne Plugin, ohne Änderungen an der wp-config.php auf dem Server.

Häufig gestellte Fragen

Warum blockiert WordPress bestimmte Dateitypen?

WordPress prüft jeden Upload über wp_check_filetype_and_ext() gegen eine fest hinterlegte Positivliste, die get_allowed_mime_types() zurückgibt. Die Meldung "aus Sicherheitsgründen" bedeutet, dass deine Dateiendung oder dein MIME-Typ nicht auf dieser Liste steht. Der ursprüngliche Zweck war, Angreifer daran zu hindern, ausführbare PHP-Dateien als Bilder getarnt hochzuladen. Derselbe Filter blockiert aber auch legitime Formate wie HEIC, AVIF und SVG, die schlicht nicht in der Core-Liste standen, als deine WordPress-Version erschien. Die Lösung: entweder den MIME-Typ per Filter hinzufügen oder die Datei vor dem Upload in ein erlaubtes Format konvertieren.

Ist es sicher, eigene Dateitypen zu erlauben?

Meistens ja, aber sei wählerisch. Bildformate (HEIC, AVIF, WebP) und Mediencontainer (MP4, MOV) lassen sich gefahrlos zum upload_mimes-Filter hinzufügen — sie können nicht als Code ausgeführt werden. SVG ist das einzige Bildformat, das Vorsicht erfordert, weil es XML ist und Inline-JavaScript enthalten kann; wenn du SVG erlaubst, installiere zusätzlich ein Sanitizing-Plugin wie Safe SVG. Verwende niemals ALLOW_UNFILTERED_UPLOADS in der wp-config.php als dauerhafte Lösung. Diese Konstante schaltet sämtliche Upload-Sicherheitsprüfungen von WordPress ab, auch die, die den direkten PHP-Upload blockieren.

Was ist besser: PHP-Filter oder Plugin?

Für ein oder zwei MIME-Typen, die du selbst kontrollierst, ist der upload_mimes-Filter in der functions.php eines Child-Themes oder in einem kleinen eigenen Plugin am saubersten — fünf Zeilen, kein Plugin-Overhead, und über den Plugin-Weg übersteht er Theme-Updates. Bei fünf oder mehr Dateitypen oder für Nutzer, die kein PHP bearbeiten, ist ein Plugin wie WP Add Mime Types oder File Upload Types die richtige Wahl. Der Performance-Unterschied ist null, weil beide unter der Haube denselben WordPress-Filter ausführen. Entscheide danach, ob du dich mit Code-Bearbeitung wohlfühlst, nicht nach Geschwindigkeit.

Wie erlaube ich HEIC-Dateien vom iPhone?

Füge in deine functions.php oder ein eigenes Plugin einen upload_mimes-Filter ein, der 'heic' => 'image/heic' und 'heif' => 'image/heif' ergänzt. WordPress 6.7 hat HEIC in die Core-Positivliste aufgenommen, auf einer frischen 6.7+-Installation kann dieser Filter also bereits überflüssig sein — viele Shared Hoster liefern aber angepasste WordPress-Builds aus, die neuere MIME-Typen weiterhin entfernen. Der clevere Weg für iPhone-Fotos ist die Konvertierung zu JPEG direkt auf dem Gerät mit einem Tool wie SnapPress, sodass die Datei, die auf deinem Server landet, ein Standard-JPEG ist, das noch keine WordPress-Installation jemals abgelehnt hat.

Wie erlaube ich SVG-Dateien sicher?

Füge nicht einfach nur image/svg+xml zum upload_mimes-Filter hinzu. SVG ist XML und kann Inline-JavaScript oder externe Referenzen enthalten, die im Browser von Administratoren ausgeführt werden. Installiere Safe SVG (kostenloses Plugin), das den SVG-MIME-Typ sowohl freischaltet als auch eingehende Dateien über die svg-sanitizer-Bibliothek bereinigt — Script-Tags, Event-Handler und externe Entity-Referenzen werden entfernt. Wenn nur vertrauenswürdige Designer SVG hochladen sollen, kannst du SVG zusätzlich auf Administratoren beschränken, indem du den Filter mit einer current_user_can('manage_options')-Prüfung kombinierst.

Was tun, wenn das Bearbeiten der functions.php die Website lahmlegt?

Erstmal: keine Panik. Der weiße Bildschirm ist fast immer ein fehlendes Semikolon oder eine nicht geschlossene Klammer in dem Snippet, das du eingefügt hast. Verbinde dich per SFTP oder über den Dateimanager deines Hosters, bearbeite wp-content/themes/dein-theme/functions.php, entferne das defekte Snippet, speichere — und die Website ist wieder da. Wenn du keine Dateien bearbeiten kannst: Jedes Hosting-Panel hat eine Option wie "PHP-Fehlerlog mit einem Klick" oder "Theme zurücksetzen". Bearbeite die functions.php künftig über ein Child-Theme oder — besser — packe deine eigenen Filter in ein kleines eigenes Plugin, damit ein Code-Fehler nur ein Plugin deaktiviert, statt die ganze Website lahmzulegen.