Restriction type de fichier "input type=file&
Résolu/Fermé
A voir également:
- Restriction type de fichier "input type=file&
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Changer le type de fichier - Guide
- Ouvrir fichier .bin - Guide
4 réponses
Utilisateur anonyme
9 août 2006 à 16:09
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.
<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.
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
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
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
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.
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.
9 août 2006 à 16:57
Merci poof, j'ai appris un truc comme ça au moins ;) Et c'est vachement plus simple que de faire un test avec PHP !
9 août 2006 à 17:00
1 déc. 2011 à 10:19