Restriction type de fichier "input type=file&

Résolu/Fermé
fabio94 - 9 août 2006 à 13:55
 xav - 1 déc. 2011 à 10:19
Bonjour ,
Je souhaiterai pouvoir, dans ma balise HTML <input type="file">, restreindre le type de fichier selectionnable.

Par default il y a 3 choix qui sont:
-tous les fichiers(*.*)
-Images (*.gif,*.jpg)
-HTML (*.htm,*.html)

Pour ma part, je ne souhaiterais ne pouvoir rendre sélectionnable que les fichiers de type word.

En vous remerciant d'avance des réponse que vous pourrez m'apporter.
A voir également:

4 réponses

Utilisateur anonyme
9 août 2006 à 16:09
Exemple
<input type="file" id="fichier" />
if (document.getElementById('fichier').value.split('.').reverse()[0] == 'doc') alert('ok');

Bon alors le code prend le nom du fichier (et le chemin) dans le champ file, découpe le tout avec le caractère . (point), le met dans un tableau, l'inverse puis prend le premier élément (l'extension du fichier) et teste si c'est doc.
5
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
9 août 2006 à 16:57
Bon bah c'était possible ^^

Merci poof, j'ai appris un truc comme ça au moins ;) Et c'est vachement plus simple que de faire un test avec PHP !
0
Utilisateur anonyme > Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008
9 août 2006 à 17:00
Attention, il faut TOUJOURS faire le test du côté de php par sécurité car le javascript peut être désactivé sur le navigateur.
0
Ca ne teste pas vraiment le type de fichier... Il faut tester le MIME type
0
nicolasbonnici
18 janv. 2011 à 00:15
Bonjour à tous,

Attention ne pas faire confiance à Javascript pour vérifier le type d'un fichier et surtout lors de la vérification coté serveur ne pas faire confiance à l'extension (.jpg, .gif etc...) du fichier mais plutôt tester le MIME type du fichier directement (selon votre version de PHP ça diffère) c'est le seul moyen de vraiment sécuriser ce type d'upload. Pour pousser le vice n'autorisez pas non plus le format gif qui peut contenir des backdoors.

Nico
3
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
9 août 2006 à 14:22
Salut.

il y a peut-être plus simple, mais pour ma part, j'autoriserai tous les fichiers (*.*), et il y aurai une page intermédiaire en PHP qui récupère le chemin du fichier (si tu as <FORM METHOD="POST" ACTION="traitement.php"> et <INPUT TYPE="file" NAME="fichier">, dans traitement.php tu as $fic=$_POST['fichier']; Il te ne reste plus qu'à tester si '.doc' est dans $fic, si oui alors tu valides l'envoi par le formulaire, si non tu retournes à la page précédente en affichant un message d'erreur du type "Le fichier sélectionné n'est pas un .doc !".

Ca doit également être possible à faire en JavaScript avec un OnChange(), mais je ne sais pas comment rechercher la chaîne de caractère '.doc' dans une chaîne.
2
merci beaucoup pour vos réponses !
1