it-swarm.com.de

Wie kann ich das Hochladen von BMP-Bildern verhindern?

Ich muss das Hochladen von BMP-Bildern für Benutzer verhindern. Wie kann das möglich sein?

3
mha

Ich habe die Lösung gefunden von hier . Und es funktioniert!

WordPress verfügt über eine Reihe von eingeschränkten Dateitypen, die Sie über die Medienbibliothek hochladen können. Dies ist zwar eine hervorragende Sicherheitsfunktion, es kann jedoch vorkommen, dass Sie andere Dateien hinzufügen möchten, die standardmäßig eingeschränkt sind, oder auch umgekehrt, wenn Sie nur das Hochladen einiger Erweiterungen zulassen möchten. Glücklicherweise macht WordPress dies mit einem kleinen Ausschnitt aus PHP Code zum Kinderspiel.

Wenn Sie einen bestimmten Dateityp hinzufügen oder entfernen möchten, der über die Medienbibliothek zu WordPress hochgeladen werden kann, können Sie diesen PHP Code in Ihre Datei theme functions.php einfügen:


function my_myme_types($mime_types){
//Adjust the $mime_types, which is an associative array
//where the key is extension and value is mime type.
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Im Folgenden finden Sie ein Beispiel für das Hinzufügen und Entfernen eines neuen Dateityps (in diesem Beispiel füge ich eine bereits vorhandene Erweiterung hinzu, das Konzept ist jedoch dasselbe):


function my_myme_types($mime_types){
    $mime_types['avi'] = 'video/avi'; //Adding avi extension
    unset($mime_types['pdf']); //Removing the pdf extension
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Sie können die zulässigen Dateitypen auch zurücksetzen, indem Sie ein neues Array in der Funktion erstellen und diese Werte zurückgeben:


function my_myme_types($mime_types){
    //Creating a new array will reset the allowed filetypes
    $mime_types = array(
        'jpg|jpeg|jpe' => 'image/jpeg',
        'gif' => 'image/gif',
        'png' => 'image/png',
        'bmp' => 'image/bmp',
        'tif|tiff' => 'image/tiff'
    );
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Wenn Sie wissen möchten, welche Dateitypen derzeit von WordPress unterstützt werden, überprüfen Sie die Funktion get_allowed_mime_types in der Datei wp-includes/functions.php.

3
mha

Die Magie steckt in get_allowed_mime_types(), die den upload_mimes-Filter aufruft. Das filtert ein Standardarray, das aus Schlüsseln besteht, als nicht abgeschlossenen regulären Ausdruck von Dateierweiterungen und den zugeordneten MIME-Typ als Werte:

array(
    'jpg|jpeg|jpe' => 'image/jpeg',
    'gif' => 'image/gif',
    'png' => 'image/png',
    'bmp' => 'image/bmp',
    'tif|tiff' => 'image/tiff',
    'ico' => 'image/x-icon',
    ....
}

wenn Sie sich also in diesen Filter einhängen und bmp entfernen, sollte dies für den Moment erledigt sein:

/** prevent uploading of .bmp files. */
add_filter('upload_mimes', function(array $mimes)
    { 
        unset($mimes['bmp']);
        return $mimes;
    })
    ;

Kopieren Sie das einfach in eine Datei mit dem Namen no-bmp-upload.php und legen Sie es in den Ordner wp-content\mu-plugins.

8
hakre