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

willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009 - 23 sept. 2009 à 16:44
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 28 sept. 2009 à 21:54
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 sept. 2009 à 21:54
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.
cyrilvincent Messages postés 2 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 28 septembre 2009
28 sept. 2009 à 09:12
En effet, merci de ta précision.
cs_MaX3315 Messages postés 170 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 11 mai 2009
28 sept. 2009 à 09:09
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.
cyrilvincent Messages postés 2 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 28 septembre 2009
28 sept. 2009 à 08:57
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.
cs_MaX3315 Messages postés 170 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 11 mai 2009
28 sept. 2009 à 08:54
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!
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
24 sept. 2009 à 10:36
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
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
23 sept. 2009 à 16:44
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
Rejoignez-nous