web-dev-qa-db-fra.com

Téléchargement de fichiers non multimédia?

Je souhaite ajouter sur WordPress des fichiers qui ne sont pas des images, des vidéos intégrées, etc. Cependant, lorsque j'essaie d'utiliser la fonctionnalité de téléchargement de média, l'erreur suivante apparaît.

"Le type de fichier ne respecte pas les consignes de sécurité."

Y a-t-il un moyen de faire cela en utilisant WordPress?

1
Bryan Harrington

Une erreur peut être déclenchée de deux manières ( source ):

  • l'utilisateur n'a pas la capacité unfiltered_upload;

  • WP n'aime pas le type de fichier ou l'extension.

Ce dernier est vérifié par la fonction wp_check_filetype_and_ext() ( source ) qui filtre les retours via le crochet wp_check_filetype_and_ext pour permettre la validation de types de fichiers supplémentaires.

5
Rarst

En étendant @Rarst Answer, j'ai essayé le filtre wp_check_filetype_and_ext et voici comment il peut être utilisé pour autoriser les types de fichiers PHP:

add_filter( 'wp_check_filetype_and_ext', 'file_and_ext_wpse_9289', 10, 4 );

function file_and_ext_wpse_9289( $types, $file, $filename, $mimes )
{
    if( false !== strpos( $filename, '.php' ) )
    {
        $types['ext'] = 'php';
        $types['type'] = 'text/x-php';
    }
    return $types;
}

Cependant, le moyen le plus simple consiste à utiliser le filtre upload_mimes:

1
brasofilo