Page 1 sur 1

Validation champs formulaire de type File

Posté : 12 avr. 2011, 23:16
par Fabien000
Bonjour,

Je suis en train de réaliser un formulaire en php, jusque la rien de bien compliqué.

J'ai inséré un champ de type "file" qui permet d'uploader un fichier.
Or je souhaiterais qu'avec du jquery, l'extension du fichier dans le champs du formulaire soit validé lorsque l'internaute soumet le formulaire.
En gros, je souhaiterais que la vérification se fasse avant l'action du formulaire. Si cette vérification n'est pas validée, alors on arrête le script (et donc le formulaire n'est pas envoyé).

Voici mon code php :

Code : Tout sélectionner

<form name="ajout" id="ajout" method="post" action="" enctype="multipart/form-data"> <fieldset> <p id="item_formulaire">Image <span class="oblig">*</span></p> <p id="champ_formulaire"><input id="image" name="image" type="file" /><span class="error"></span><input type="hidden" name="MAX_FILE_SIZE" value="12345" /></p> </fieldset> <fieldset> <p id="item_formulaire"><input type="submit" name="valider" value="Ajouter l\'actualit&eacute;" /></p> </fieldset><br /> <p class=\"oblig\">* Champs obligatoires</p> </form>'
JE vous ai fais grâce d'une grande partie du formulaire :)

J'ai ensuite crée ce script en Jquery :

Code : Tout sélectionner

// JavaScript Document $(function() { $("#ajout").submit(function() { valid=true; if($("#image").val()=="") { $("#image").next(".error").fadeIn(1000).text("Email requis"); $("#image").css("border-color","#f55"); $("#image").css("background-color","#fcc"); valid=false; } else if(!$("#email").val().match(/@"(.*?)\.(jpg|jpeg|png|gif)$"/)){ $("#image").next(".error").fadeIn(1000).text("Extension invalide"); $("#image").css("border-color","#f55"); $("#image").css("background-color","#fcc"); valid=false; } else { $("#image").next(".error").slideUp(); $("#image").css("border-color","#eee"); $("#image").css("background-color","#fff"); } return valid; }); } );
J'ai pourtant bien relié mes fichiers dans mon <head>, et j'ai vérifié, il n'y a pas de problème de lien.

Quelqu'un a une idée ?

Merci d'avance

Re: Validation champs formulaire de type File

Posté : 13 avr. 2011, 01:28
par sadeq
voici une correction:
$("#ajout").submit(function() {
   
                              valid=true;
                              
                                 
                                 if($("#image").val()=="") {
                                 
                                 $("#image").next(".error").fadeIn(1000).text("nom d'image requis");
                                 $("#image").css("border-color","#f55");
                                 $("#image").css("background-color","#fcc");
                                 valid=false;
                                 
                                                }
                                                
                                 else if(!$("#image").val().match(/(.*?)\.(jpg|jpeg|png|gif)$/)){
                                    $("#image").next(".error").fadeIn(1000).text("Extension invalide");
                                    $("#image").css("border-color","#f55");
                                    $("#image").css("background-color","#fcc");
                                    valid=false;
                                 }
                                                
                                    else {
                                 $("#image").next(".error").slideUp();
                                 $("#image").css("border-color","#eee");
                                 $("#image").css("background-color","#fff");
                                 }
                                 
                                 
                  
                                 return valid;               
   
                              });

Re: Validation champs formulaire de type File

Posté : 13 avr. 2011, 11:59
par moogli
j'ajouterais qu'il faut de toute façon faire la vérification en php car tu ne peut être certain de ce que tu va recevoir on peut valider ton formulaire en passant outre le JS ;)

@+

Re: Validation champs formulaire de type File

Posté : 13 avr. 2011, 12:04
par sadeq
Faudra aussi mettre un antivirus et un antispyware du côté du serveur d'upload. :wink: