Le micro snippet du mec qui n’as pas le temps :), c’est vrai que pour ça elle est pratique cette rubrique snippet 😀 !!
Voici donc une astuce toute bête mais aussi un moyen sûre à 100% de récupérer l’extension d’un fichier si il en possède un :
function getExtension($fileName){ $dot = explode('.',$fileName); return (count($dot)>1?strtolower($dot[count($dot)-1]):false); }
La méthode return false si le fichier ne comporte aucune extension.
Mais mmm.. c’est pas mieux avec ça ?:
pathinfo($uri,PATHINFO_EXTENSION);
Si, mais c’est dépendant d’un chemin physique de fichier, dans le cas d’un système de fichiers virtualisé qui dépend intégralement d’une base de données par exemple, pathinfo est inutilisable, de plus la fonction pathinfo() est sensible à la configuration locale.
Mais bon je tchaoupine la :), faut bien que je défende mes ptits bouts de snippets 😀
Ca marche aussi pour les .tar.gz ton truc ?
Ha la t’es dur ^^, et tu connais très bien la réponse 🙂 . En même temps il fait chier ce format à faire son cas particulier :p
Salut, si on a accès au fichier (lors d’un upload par exemple),
Il vaut mieux éviter de se baser sur le nom du fichier. Voici le truc pour “vraiment” analyser le fichier:
in_array(finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file_path), array(‘image/jpeg’, ‘image/jpg’, ‘image/png’))
Dans ce cas-ci c’est pour vérifier si le fichier situé à l’emplacement $file_path est bien une image 😉
Lorsqu’on à accès au fichier, on peut directement utiliser l’option que sebSauvage à proposé, a savoir
Dans le cas d’un SFV seul le nom peut servir de référence 🙂
Un SFV ?
Oui mais cette solution ne vérifie pas vraiment le type du fichier, si ?
C’est justement ce que je lui reproche si c’est le cas. Elle se base sur le nom du fichier et je peux très bien t’envoyer un exécutable en le renommant en chaton.jpeg 😉
Un système de fichiers virtualisé, à savoir que la hiérarchie de l’arborescence n’est pas physique mais stockée en base de données, ceci offre de nombreux avantages mais il en resulte un inconvénient c’est qu’il faut un traitement avant de pouvoir reconstituer le chemin physique du fichier.
Tu as totalement raison ça ne vérifie pas le type du fichier, il s’agit plus d’une rustine dans le cas ou la vérification du type du fichier soit impossible.