WordPress-Version:4.7.9.
define('ALLOW_UNFILTERED_UPLOADS', true);
Die Erklärung wurde hineingeschrieben wp-includes/functions.php
.
Bearbeiten Sie eine einfache Datei mit dem Namen test
die keine Erweiterung enthalten.
vim test
to upload the file which contain no file extension.
Erhalten Sie den Fehler, wenn die Datei hochgeladen werden soll test
.
This file type is not allowed. Please try another.
Benennen Sie die Datei um test
hinein test.txt
.
Und fügen Sie Folgendes hinzu wp-includes/functions.php
.
add_filter('upload_mimes','custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes=array() ) {
$existing_mimes['txt'] = 'application/txt';
return $existing_mimes;
}
Die Datei test.txt
kann erfolgreich hochgeladen werden.
Es hat keinen Sinn, dies in der Konfigurationsdatei festzulegen wp-config.php
.
define('ALLOW_UNFILTERED_UPLOADS', true);
Ich benutze ein 24-jähriges Kind.
Hier ist mein /var/www/html//wp-content/themes/twentyfourteen-child/functions.php
<?php
define('ALLOW_UNFILTERED_UPLOADS', true);
function my_theme_enqueue_styles() {
$parent_style="twentyfourteen-style"; // This is 'twentyfourteen-style' for the Twenty Fourteen theme.
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( $parent_style ),
wp_get_theme()->get('Version')
);
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
?>
Es kann keine Wirkung entfalten.
Das eigentliche Problem liegt nicht im Backend von WordPress, sondern in der Frontend-Validierung. Der Uploader wird von verwaltet Hochladen und standardmäßig prüft WordPress nur, ob Sie definiert haben ALLOW_UNFILTERED_UPLOADS
im Upload-Fortschritt, ohne wirklich die Filtervalidierung des Frontend-Plugins mit dem Wert zu optimieren. Vielleicht ein kleiner Frontend-Fehler.
Wie Sie sehen können, rendert WordPress immer die folgenden Standardeinstellungen:
var _wpPluploadSettings = {"defaults":{"file_data_name":"async-upload","url":"\/wp-admin\/async-upload.php","filters":{"max_file_size":"268435456b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,ico,asf,asx,wmv,wmx,wm,avi,divx,flv,mov,qt,mpeg,mpg,mpe,mp4,m4v,ogv,webm,mkv,3gp,3gpp,3g2,3gp2,txt,asc,c,cc,h,srt,csv,tsv,ics,rtx,css,htm,html,vtt,dfxp,mp3,m4a,m4b,ra,ram,wav,ogg,oga,flac,mid,midi,wma,wax,mka,rtf,js,pdf,class,tar,zip,gz,gzip,rar,7z,psd,xcf,doc,pot,pps,ppt,wri,xla,xls,xlt,xlw,mdb,mpp,docx,docm,dotx,dotm,xlsx,xlsm,xlsb,xltx,xltm,xlam,pptx,pptm,ppsx,ppsm,potx,potm,ppam,sldx,sldm,onetoc,onetoc2,onetmp,onepkg,oxps,xps,odt,odp,ods,odg,odc,odb,odf,wp,wpd,key,numbers,pages"}]},"multipart_params":{"action":"upload-attachment","_wpnonce":"9ee7fbf228"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false};
Eine vorübergehende Lösung des Problems, bevor sie es selbst beheben, wäre das Einhängen der Filter, die WordPress aufruft, um die Frontend-Einstellungen zu generieren. plupload_default_settings
.
Fügen Sie den Filter in Ihrer hinzu functions.php
:
add_filter('plupload_default_settings', function ($settings) {
if (defined('ALLOW_UNFILTERED_UPLOADS') && ALLOW_UNFILTERED_UPLOADS) {
unset($settings['filters']['mime_types']);
}
return $settings;
});
Dadurch können Sie Ihre hochladen test
über den Uploader. Da WordPress bereits im Backend prüft, sofern Sie es in Ihrer wp-config.php
das ALLOW_UNFILTERED_UPLOADS
ist true
es sollte ordnungsgemäß hochgeladen werden.
Stellen Sie sicher, dass es kein Sicherheits-Plugin oder anderes Plugin gibt, das Ihre außer Kraft setzt define('ALLOW_UNFILTERED_UPLOADS', true);
🙂
Ich würde vorschlagen, zuerst zu scannen ALLOW_UNFILTERED_UPLOADS
Durchsuchen Sie Ihre Site-Dateien und sehen Sie, was auftaucht.
Aktualisieren Sie auch auf die neueste Version von WordPress, falls Sie dies noch nicht getan haben, da die Fehlermeldung, die Sie erhalten, sich von der unterscheidet, die ich erhalte.
Sie möchten dies nicht in Ihre /functions.php-Datei einfügen, sondern in Ihre /wp-config.php-Datei.
Alternativ können Sie MIMEs für bestimmte Dateitypen erstellen, indem Sie diese in Ihre /functions.php-Datei einfügen, wie Sie es getan haben.
Die Antwort von Chin Leung funktioniert ganz gut, die einzige Einschränkung ist, dass jede Dateierweiterung hochgeladen werden kann.
Die folgende Methode benötigt ALLOW_UNFILTERED_UPLOADS
auf false gesetzt (oder einfach nicht auf wp-config oder functions.php gesetzt) und es erlaubt Dateien ohne Erweiterungen und blockiert nicht erlaubte Erweiterungen:
add_filter('upload_mimes', function ( $mimes ) {
$mimes['*'] = 'text/plain';
return $mimes;
});
add_filter( 'wp_check_filetype_and_ext', function ( $types, $file, $filename, $mimes) {
# If filename doesn't containg a dot '.', allow upload
if( false === strpos( $filename, '.' ) ) {
$types['ext'] = '*';
$types['type'] = 'text/plain';
}
return $types;
}, 10, 4 );
Fügen Sie den folgenden Code am Kopf Ihres hinzu wp-config.php
Datei:
define('ALLOW_UNFILTERED_UPLOADS', true);
Notiz: Um eine neue Datei in Medien hochzuladen, gehen Sie zur folgenden URL:
http://example.com/wp-admin/media-new.php
Anstatt von:
http://example.com/wp-admin/upload.php
Weil in upload.php
die MIME-Typ-Validierung erfolgt durch Javascript.
Also, möchten Sie die Upload-/Validierungsfunktionen von WordPress verwenden? oder Ihr Ziel ist es, nur eine Datei hochzuladen?
– Samvel Aleqsanyan
6. März 2018 um 15:12 Uhr
Was ist die Frage?
– revo
8. März 2018 um 22:45 Uhr
Ich kann keine Datei hochladen, die keine Erweiterung enthält. Wie lade ich eine Datei hoch, die keine Erweiterung enthält?
– Showkey
9. März 2018 um 2:18 Uhr
wo lädst du die datei hoch?
– Tarun Lalwani
12. März 2018 um 18:17 Uhr
WordPress gibt keinen Fehler aus wie “Dieser Dateityp ist nicht erlaubt”, ich habe genau nach dieser Zeichenfolge gesucht, nichts zu finden, laden Sie über Ihre Mediathek hoch? Vielleicht ist es stattdessen eine Fehlermeldung, die Ihr Server ausgibt? Aber ich kann es nicht mit Sicherheit sagen, aber zumindest konnte ich diese Zeichenfolge nicht finden, das ist sicher (neueste WP-Version).
– Rens Tillmann
12. März 2018 um 19:27 Uhr