Contrôler le type de fichier par javascript

Répondre
sparh
sparh
Déconnecté
Webmaster en herbe
Salut,
je reviens à la charge,
j'ai donc un formulaire avec des champs de type file.
Et j'aimerai trouver une fonction javascript qui vérifie l'extension du fichier.
J'ai cherché un peu, j'ai trouvé ce type de fonction en php (notemment sur ce site) mais j'arrive pas à la transcrire en javascript?
Voilà, j'ai fait un nouveau post car sur google je n'ai rien trouvé!
Merci d'avance
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Pour des raisons de sécurité, tu ne peux pas. Par contre, tu peux utiliser l'attribut accept.
Patochewie
Patochewie
Déconnecté
Salut,
Pourquoi ne pas utiliser une fonction comme split() pour découper le nom du fichier et récupérer juste l'extension?
Après une petit switch suivant l'extension pour avoir le type de fichier.ça demande de lister un certain nombre de cas si tu geres bcp de types de fichiers, mais ça reste faisable.
sparh
sparh
Déconnecté
Webmaster en herbe
merci, de vos réponses:
Pour l'attribut accept, je l'ai déja mis mais il n'est pas accepté par touts les navigateurs.

Pour split(), l'idée me parait bonne et je vai chercher par là mais vu mon niveau de java une petite aide ne serait pas malvenue ;)

En fait j'ai merai avoir une fonction de base qui n'accepte par ex que les .gif (par la suitre je l'utiliserai dans un autre formulaire pour n'accepter que les .swf en remplacant .gif par .swf ou autre...)
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
split est un très mauvaise idée, puisque de toute façons, l'extension ne renseigne en rien du tout sur le type de fichier.
Bzh
Bzh
Déconnecté
Roooo !

Si ce n'est que pour faciliter les formulaires et surtout si c'est correctement REVERIFIER coté serveur, split() est utilisable !!!

De toute façon, pour la sécuriter TOUJOURS verifier coté serveur...

Le javascript n'est là que pour le confort et ne doit pas être INDISPENSABLE !!!

Voili...
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Bzh) Ben en l'occurence, tu réduit mon confonrt. Car par un apriori de programmeur, tu décides qu'un fichier a une extention et que ce dernier renseigne sur la nature d'y-celui.
Bzh
Bzh
Déconnecté
Heu !!!

Renome une image jpg en ogg par exemple ! Et doucle clique dessu !!

Alors, qu'est-ce qui se passe ? smiley
Patochewie
Patochewie
Déconnecté
Ben je suis d'accord avec toi LupusMic mais je rappelle la question:
"Et j'aimerai trouver une fonction javascript qui vérifie l'extension du fichier."

...
Et pour vérifier l'extension d'un fichier ben tu vérifies son extension pas son type. Apèrs tout dépend de l'utilisation que tu en fais. Et c'est vrai qu'un nom de fichier ne renseigne pas forcément sur son type. Mais bon, sinon tu ouvres ton fichier en binaire, tu récupère le header de ton fichier, mais c'est peut être un peu se prendre la tête... enfin ça dépend de l'utilisation..
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Bzh) Sous BeOS, ce que tu fais n'a aucun impact sur le comportement du système, car à l'accès du fichier le Tracker utilises mime magic pour déterminer le type de contenu du fichier. Et sous les environnements KDE et Gnome, ça vient tout doucement. Bien sûr, je ne parlerais pas des bureaux
antiques tel que celui de MS Win.

(Patochewie) Pour déterminer le type de contenu, c'est ce que fait Apache avec l'extention mime magic, pareil pour PHP. Ils ouvrent le fichier et regardent les premiers octets. Voir la commande file.
Patochewie
Patochewie
Déconnecté
Rha merci. Je savais pas que ça existait, ça fait plaisir.
C'est marrant ces trucs que tu te dis que ce serait utile puis après t'apprend que ça existe. J'aime bien ça moi.
sparh
sparh
Déconnecté
Webmaster en herbe
salut et merci de vos réponses.
Je suis tjre sur le problème: je détail.
J'ai un formulaire d'upload (avant l'upload je vérifi le type mime via php mais ca c sur la page de traitement)
Je voudrai donc sur la page de formulaire ajouter un java qui permet de vérifier l'extension du fichier.
Voilà ce que j'ai réussis à faire mais rien à faire le dernier java (celui qui vérifie l'extension de fichier) ne marche pas
  1. <script type="text/JavaScript">
  2. <!--
  3. function verif_formulaire()
  4. {
  5. if(document.formulaire.titre.value == "") {
  6. alert("Vous devez obligatoirement entrer un titre pour votre source!");
  7. document.formulaire.titre.focus();
  8. return false;
  9. }
  10. if(document.formulaire.texte.value == "") {
  11. alert("Vous devez obligatoirement entrer une description pour votre source!");
  12. document.formulaire.texte.focus();
  13. return false;
  14. }
  15. if(document.formulaire.adresse.value == "") {
  16. alert("Vous devez obligatoirement entrer un lien RSS valide.");
  17. document.formulaire.adresse.focus();
  18. return false;
  19. }
  20. if(document.formulaire.adresse.value == "") {
  21. alert("Vous devez obligatoirement entrer un lien RSS valide.");
  22. document.formulaire.adresse.focus();
  23. return false;
  24. }
  25. if (document.formulaire.fichier.value="") { // verif si il y a une valeur
  26. ext=fichier.substr(fichier.lastIndexOf(".")+1); // récupèrer l'extension
  27. ext=ext.toLowerCase(); // met en minuscule
  28. if ((document.formulaire.fichier.charAt(1)!=":")||(document.formulaire.fichier.charAt(2)!="")||(ext!="MP3"))
  29. { // verf si c'est l'url d'un fichier sur le disque dur ("C:/", "E:/" ...) et que l'extension est un pdf, sinon ...
  30. alert('Le fichier sélectionné n'est pas un fichier mp3 !'); //c'est pas bon !
  31. return false;
  32. }
  33. }
  34. return true;
  35. }
  36. //-->
  37. </script> 

Voilà, je suis sur le truc depuis plusieurs jours, tout ce que je trouve dans les divers forum ne marche pas donc si quelqu'un pouvait m'aider ce serait cool.
Merci d'avance
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Il est ou ton Applet JAva ? :-D
sparh
sparh
Déconnecté
Webmaster en herbe
?? désolé mais je comprends pas trop "applet java", je suis allé voir la déf sur goog mais j'ai pas très bien compris.
Enfin si c'est l'appel du java, je ne l'ai pas oublié!! (le code si dessus est placé entre les balises head) et voilà mon formulaire qui est dans le body!
  1. <form name="formulaire" action="Upload.php" method="post" onsubmit="return verif_formulaire()" enctype="multipart/form-data">
  2.     <input name="pseudo" type="hidden" id="pseudo" value="<?php echo $change['pseudo']; ?>" maxlength="12">
  3. <p align="center">
  4. Nom de votre source:
  5. <input name="titre" type="text" id="titre" value="Titre de votre source">
  6.  
  7.       Description:
  8. <textarea name="texte" cols="40" rows="4" id="texte" description="Petite description">
  9. Petite description de votre source.</textarea>
  10.       
  11.       Cat&eacute;gorie :
  12.       <select name="cat">
  13.        <option value="categorie">Cat&eacute;gories</option>
  14.        <option value="france">France</option>
  15.        <option value="international">International</option>
  16.        <option value="economie">Economie</option>
  17.        <option value="culture">Culture</option>
  18.        <option value="sport">Sport</option>
  19.        </select>
  20.       L'adresse de votre lien rss (fichier xml)
  21.       <input type="text" name="adresse" id="adresse"/>
  22. Votre fichier mp3
  23. <input type="file" name="fichier" />
  24. <input type="submit" name="Submit" value="Envoyer" />
  25. </p>
  26.  
  27. </form> 

Je reprécise que les 4 premières vérifications (qui vérifient que les champs ne sont pas vides) marchent, c'est juste la 5ème (vérifier le type de fichier) qui ne fonctionne pas!
Merci d'avance
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
[cite]Je voudrai donc sur la page de formulaire ajouter un java qui permet de vérifier l'extension du fichier.[/cite]

Ben tu parles d'un applet Java, et pas de script Javascript. D'où ma question.
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog