[résolu]Filtrer un fichier uploadé qui n'est pas un fichier

Eléphant du PHP | 83 Messages

05 déc. 2011, 18:20

Bonjour,

voici mon pb : j'ai un formulaire qui permet de sélectionner un fichier à uploader ; mais évidemment, si on sélectionne un .zip, je voudrais le rejeter. J'ai essayé ce code :
    $type_file = $_FILES['fichier']['type'];
	
	if (strstr("compressed", $type_file))
	{
	   exit("Ce n'est pas un fichier, bâtard");
	}
mais ça n'a pas marché (on ne sort pas et le script plante un peu plus loin) : comment faire ?
Modifié en dernier par laurents le 06 déc. 2011, 12:04, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2011, 18:28

Il faut regarder le type mime du fichier que tu trouveras dans l'index type.

Eléphant du PHP | 83 Messages

05 déc. 2011, 18:38

Pour récupérer le type mime, j'ai vu la fonction "mime_content_type", mais elle est "deprecated" ; donc comment faire ?

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2011, 19:06

Bah tu compares juste le type mime avec ce que tu veux...
Regardes donc celui retourné par un zip et tu sauras quoi refuser.

N.B : mon premier message était totalement HS, j'avais mal lu ton code.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 déc. 2011, 11:53

pour le "remplacement" de mime_content_type tu a => http://www.php.net/manual/fr/ref.fileinfo.php qui pourrait être une meilleur solution que d'utiliser le "type" de $_FILES ceci dit ça doit le faire aussi

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 83 Messages

06 déc. 2011, 12:03

J'ai déjà tenté d'utiliser fileinfo pour obtenir le type mime, mais je me souviens que ça ne marchait pas (j'ai oublié ce qui se passait...), donc $_FILES['fichier']['type'], ça m'allait très bien...