Comment vérifier qu'un fichier est une image en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2018-08-27 16:16:25
Thèmes : php - script - webmaster
Question

Comment puis-je vérifier qu'un fichier est une image en PHP ?

Réponse

Lorsque votre navigateur interroge une serveur Web pour charger les différents éléments d'un site, le serveur web transmet d'abord le type MIME du fichier à envoyer au navigateur, de manière qu'il puisse savoir de quelle manière afficher le document en fonction de sa nature.

Un type MIME est constitué de la manière suivante:

Content-type: type_mime_principal/sous_type_mime

Une image PNG a par exemple le type MIME suivant:

Content-type: image/png

Ceci étant, voici comment vérifier qu'un fichier est une image en PHP :

function check_image_mime($tmpname){
	$finfo = finfo_open(FILEINFO_MIME_TYPE);
	$mtype = finfo_file($finfo, $tmpname);
	if(strpos($mtype, 'image/') === 0){
		echo "C'est une image";
	} else {
		echo "Ce n'est pas une image";
	}
	finfo_close($finfo);
}
check_image_mime("exemple.jpg");