web-dev-qa-db-fra.com

Peut charger des documents doc et pdf mais pas ppt - non autorisé pour des raisons de sécurité

"Insérer le moteur de recherche ici" était plutôt inutile pour celui-ci - j'ai jeté un coup d'œil sur wp-includes/functions.php, wp-admin/includes/file.php etc. mais je n'ai trouvé aucune raison pour le comportement que je reçois.

J'utilise plusieurs sites et lorsque je télécharge un fichier .doc ou .pdf, je n'ai pas de problème. Lorsque je télécharge un fichier .ppt - quel que soit le nom de fichier ou le type MIME utilisé (c'est-à-dire un fichier .ppt renommé en .txt, un fichier .txt renommé en .ppt) - le message "Désolé, ce type de fichier n'est pas autorisé pour des raisons de sécurité" avec peu d'autre explication.

Dois-je modifier la table mimes, ajouter un remplacement (et si oui, quelle est la syntaxe pour cela), ou s'agit-il de quelque chose dans ma conf Apache? J'ai fait quelques essais amusants pour essayer de verrouiller des éléments à quelques endroits, bloquant éventuellement des fichiers .pot.

7
Andrew

Vous l'avez trouvé en cherchant dans les paramètres de l'administrateur réseau multisite: il existe un paramètre appelé "Télécharger les types de fichier" (dans la base de données, la ligne avec meta_key = "upload_filetypes" dans la table wp_sitemeta) contient une liste des types de fichiers autorisés. L'ajout de "ppt" à la liste leur permet d'être téléchargés.

6
Andrew

WordPress ne semble pas avoir la possibilité de modifier ces paramètres ailleurs que ce que vous avez fait en le faisant dans la base de données. Mais avez-vous essayé d'utiliser ce code?

<?php
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes = array() ) {
    // add your extension to the array
    $existing_mimes['ppt'] = 'application/vnd.ms-PowerPoint';
    // or: $existing_mimes['ppt|pot|pps'] = 'application/vnd.ms-PowerPoint';
    // to add multiple extensions for the same mime type
    // add as many as you like
    // removing existing file types
    unset( $existing_mimes['exe'] );
    // add as many as you like
    // and return the new full result
    return $existing_mimes;
}
?>

Utilisez ce code dans votre fichier de fonctions de thèmes. Le filtre upload_mimes vous permet apparemment de définir d'autres extensions de téléchargement autorisées et de définir correctement le type d'extension mime à utiliser dans WP. De plus, l'avantage de cette méthode est que sa mise à niveau est sûre.

Si vous avez besoin d'une liste de types MIME: http://www.w3schools.com/media/media_mimeref.asp

5
Brady