RÉCUPÉRER LE TYPE D'UN FICHIER (3 FONCTIONS DIFFÉRENTES)

Signaler
Messages postés
55
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50603-recuperer-le-type-d-un-fichier-3-fonctions-differentes

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Pis se baser sur le point pour certains fichers cachés, c'est complètement vain : par exemple .htaccess On trouvera comme extension "htaccess" alors que c'est faux : il n'y a pas d'extension, le fichier s'appelle "htaccess" et il est caché, donc il commence par un point.
Idem avec pathinfo() et l'option PATHINFO_EXTENSION.
Finalement, toutes ces fonctions font toutes la même chose de la même manière. J'ai pas encore trouvé mieux qu'une expression régulière pour choper l'extension d'un fichier à coup sûr.
Messages postés
2
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
28 septembre 2009

En effet, merci de ta précision.
Messages postés
170
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
11 mai 2009

Attention à autre chose encore : $_FILES['nomDuChampFile']['type'] donne le typemine envoyer par le navigateur client... donc par sécurité vaut mieux pas se fier à lui non plus.
Messages postés
2
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
28 septembre 2009

Se baser sur le point qui sépare l'extension est très improbable. Sous MAC par exemple l'extension n'est pas obligatoire (seul le nom est utile).
En outre la plus part du temps, vous avez besoin de connaitre l'extension lors d'un upload, et dans ce cas la fonction $_FILES['nomDuChampFile']['type'] vous donne les caractéristiques du fichier même sans extension dans le nom du fichier (on parle ici le type mime de l'objet).
Merci de le préciser dans vos remarques.
Messages postés
170
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
11 mai 2009

Comme le dit Teclis01, ce script permet de récupérer l'extension du fichier ET sutout pas son type (mimetype).

C'est la porte ouverte aux attaques!
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
C'est très illusoire et incertain de se baser sur le nom et l'extension du fichier...
tu devrais jeter un oeil ici...
http://fr2.php.net/manual/fr/function.finfo-file.php
Messages postés
55
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009

function recupererType2($nom) {
$ext = substr(strtolower(strrchr(basename($nom), ".")), 1);
return $ext;
}

function recupererType3($nom) {
$resultat = pathinfo($nom, PATHINFO_EXTENSION);
return($resultat);
}

variables intermédiaires, parenthèses inutiles, comme tu dis, codez, mais codez propre :D