plugin de validation jQuery: validation de plusieurs fichiers d’entrée

J’aimerais demander comment valider plusieurs entrées de fichier à l’aide du plugin de validation jQuery.

Actuellement, j’ai ces codes mais cela ne fonctionne pas:

.html:

Photo :

.js:

 $('#uploadPhotoForm').validate({ rules: { files: { required: true, extension: "png" } }, messages:{ files:{ required : "Please upload atleast 1 photo", extension:"Only png file is allowed!" } } }); 

J’utiliserai également ce code pour publier dans un nouveau fichier PHP pour le traitement. Mais il semble que dans mon uploadPhoto.php, $_FILES['files']['tmp_name'] soit pas défini. Puis-je savoir comment résoudre ce problème?

 if ($('#uploadPhotoForm').valid()) { $.ajax({ url: "inc/uploadPhoto.php", type: "POST", data: new FormData(this), contentType: false, cache: false, processData:false, success: function(data){ $("#error1").html(data); } }); } 

Vous avez besoin de 'files[]' au lieu de files , et si vous n’ajoutez pas additional-methods.js , vous le ferez.

  $('#uploadPhotoForm').validate({ rules: { 'files[]': { required: true, extension: "png" } }, messages:{ 'files[]':{ required : "Please upload atleast 1 photo", extension:"Only png file is allowed!" } } 

Voir jsFiddle .

A propos de sérialiser. Veuillez lire ceci comment télécharger un fichier en utilisant la sérialisation jquery

Mettre à jour:

Ça va marcher

 if ($('#uploadPhotoForm').valid()) { var form = $('#uploadPhotoForm')[0]; // [0], because you need to use standart javascript object here var formData = new FormData(form); $.ajax({ url: "inc/uploadPhoto.php", type: "POST", data: formData, contentType: false, cache: false, processData:false, success: function(data){ $("#error1").html(data); } }); } 

Votre code ne fonctionne pas, je pense parce que this dans les data: new FormData(this), object de formulaire javascript non valide.

Pour quelqu’un qui pourrait atterrir sur cette page via google.Je l’ai résolue en utilisant la solution suivante car elle ne fonctionnait pas correctement avec plusieurs téléchargements de formats différents.

  

J’ai créé une méthode de validation personnalisée car le validateur par défaut ne validait pas correctement plusieurs fichiers. Si je sélectionne le 1er fichier au format PDF et un autre fichier png.Cet exemple valide les fichiers PDF, doc et docx.

 $(function() { $.validator.addMethod( "validate_file_type", function(val,elem) { console.log(elem.id); var files = $('#'+elem.id)[0].files; console.log(files); for(var i=0;i