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?
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);
Cela fonctionnera aussi bien:
$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
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
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.
Que diriez-vous
$ext = array_pop($userfile_extn);