web-dev-qa-db-fra.com

Obtenir une extension d'image

Je veux obtenir l'extension de l'image téléchargée.

Comme je le sais, le meilleur moyen est la fonction getimagesize().

mais le mime de cette fonction, retourne image/jpeg lorsque l'image a l'extension .jpg ou aussi .JPEG.

Comment peut-on obtenir exactement l'extension?

9
OTAR

vous pouvez utiliser image_type_to_extension fonction avec le type d'image renvoyé par getimagesize:

$info = getimagesize($path);
$extension = image_type_to_extension($info[2]);
22
lupatus
$ext = pathinfo($filename, PATHINFO_EXTENSION);
22
phpalix

Vous pouvez également utiliser les fonctions strrpos et substr pour obtenir l’extension d’un fichier.

$filePath="images/ajax-loader.gif";

$type=substr($filePath,strrpos($filePath,'.')+1);

echo "file type=".$type;

sortie: gif

si vous voulez une extension comme .gif

$type=substr($filePath,strrpos($filePath,'.')+0);

sortie: .gif

6
vasudev
$image = explode(".","test.file.hhh.kkk.jpg");
echo end($image);
4
Devang Rathod

Une autre façon de le faire:

$ext = strrchr($filename, "."); // .jpg
2
dfsq

Vous pouvez également exploser le nom du fichier avec des points et prendre la fin du tableau comme suit:

$ext = end(explode('.', 'image.name.gif'));

Selon: Deux manières différentes de trouver une extension de fichier dans PHP

Et une nouvelle façon pour vous lol:

$ext = explode('.', 'file.name.lol.lolz.jpg');
echo $ext[count($ext) - 1];
0
Siki

Pour ceux qui veulent vérifier si le type d'image est JPEG, PNG, etc. Vous pouvez utiliser exif_imagetype function. Cette fonction lit les premiers octets d'une image et vérifie sa signature. Voici un exemple simple tiré de php.net:

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
   echo 'The picture is not a gif';
}
?>
0
49volro
$file_ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);

ou pour le rendre propre

$filename= $_FILES["file"]["name"];
$file_ext = pathinfo($filename,PATHINFO_EXTENSION);
0
James
$size = getimagesize($filename);
$ext = explode('/', $size['mime'])[1];
0
3zzy