Datei ohne Erweiterung in WordPress hochladen?

Lesezeit: 5 Minuten

Benutzeravatar von showkey
Showkey

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.

  • 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

Benutzeravatar von Chin Leung
Chin Leung

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 truees sollte ordnungsgemäß hochgeladen werden.

  • Tolle Antwort +1, ich habe mir erlaubt, einen kleinen Fehler in Ihrem Code zu beheben, es gab eine zusätzliche Klammer

    – Brasilo

    12. März 2018 um 22:32 Uhr

  • @brasofilo Danke, ich habe eingegeben, als ich hineinging, also habe ich es nicht bemerkt, haha: p

    – Chin Leung

    12. März 2018 um 22:34 Uhr

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.

Bretts Benutzeravatar
Brett

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.

  • Es nützt nichts, in der Konfigurationsdatei wp-config.php einzustellen.

    – Showkey

    4. März 2018 um 7:00 Uhr

  • Tut mir Leid ich meine define(‘ALLOW_UNFILTERED_UPLOADS’, true); muss am Ende von wp-config.php stehen … Aus Interesse, wie haben Sie eine Datei, die keinen Dateityp enthält?

    – Brett

    5. März 2018 um 10:37 Uhr

  • Es ist unnötig, dass eine Datei einen Dateityp enthält. Es hat keinen Sinn, ihn am Anfang oder am Ende der wp-config.php zu platzieren. Bitte versuchen Sie es in Ihrer WordPress.

    – Showkey

    5. März 2018 um 23:00 Uhr


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.phpdie MIME-Typ-Validierung erfolgt durch Javascript.

1391100cookie-checkDatei ohne Erweiterung in WordPress hochladen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy