web-dev-qa-db-fra.com

Comment obtenir l'extension de fichier en PHP?

Duplicate possible:
Comment extraire une extension de fichier en PHP?

Je souhaite obtenir l'extension de fichier d'une image que je télécharge, mais je viens de récupérer un tableau.

$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));

Y at-il un moyen d'obtenir simplement l'extension elle-même?

426
Keith Power

Pas besoin d'utiliser des fonctions de chaîne. Vous pouvez utiliser quelque chose qui est réellement conçu pour ce que vous voulez: pathinfo() :

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
1120
ThiefMaster

Cela fonctionnera aussi bien:

$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
53
Andrey

Une meilleure méthode utilise strrpos + substr (plus rapide que explode pour cela):

$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);

Mais, pour vérifier le type d'un fichier, utiliser mime_content_type est un meilleur moyen: http://www.php.net/manual/en/function.mime-content-type.php

26
Julien

Vous pouvez essayer avec cela pour le type mime

$image = getimagesize($_FILES['image']['tmp_name']);

$image['mime'] renverra le type mime.

Cette fonction ne nécessite pas de bibliothèque Gd. Vous pouvez trouver la documentation ici .

Ceci retourne le type mime de l'image.

Certaines personnes utilisent le $_FILES["file"]["type"] mais il n’est pas fiable, car il a été fourni par le navigateur et non par PHP.

Vous pouvez utiliser pathinfo() comme l'a suggéré ThiefMaster pour récupérer l'extension de l'image.

Tout d'abord, assurez-vous que l'image est correctement téléchargée pendant le développement avant d'effectuer toute opération avec l'image.

23
Balan

Que diriez-vous

$ext = array_pop($userfile_extn);
11
ilanco