La validation de Téléchargement de Fichier - Jquery et “Accepter” attribut
Je suis à l'aide d'un formulaire à télécharger un fichier. Je veux uniquement les fichiers PDF à télécharger. C'est mon code:
Une zone de saisie pour permettre à l'utilisateur de choisir un fichier:
@Html.FileBox(m => m.FileName, new { id = "FileName", accept = "application/pdf" })
et un endroit pour afficher un message d'erreur(s):
@Html.ValidationMessageFor(m=>m.FileName)
Le code généré pour le champ de saisie est:
<input id="FileName" type="file" name="FileName" data-val-required="The File Name field is required." data-val-length-max="512" data-val-length="The field File Name must be a string with a maximum length of 512." data-val="true" accept="application/pdf">
Maintenant, même si je choisis un fichier PDF, j'obtiens une erreur Please enter a value with a valid extension.
Je suis en utilisant MVC 3, et non-intrusif jquery pour valider le formulaire.
avez-vous trouvé ça? J'ai le même problème. J'ai besoin d'accepter plusieurs types ("image/gif,image/png,image/jpeg"), dans mon cas.
Non, je n'ai pas. J'ai dû enlever le "accepter" attribut. Peut-être Jquery de Validation ne prend pas en charge la validation de type MIME pour "accepter".
Pour les types d'image, il ne devrait pas être un problème. Avez-vous essayé quelque chose comme
oui. J'ai eu "image/gif,image/jpeg,image/png". J'ai même pris tout, mais un type mime, et la validation ne pourrait m'empêcher de télécharger quoi que ce soit. Quand j'enlève le "accepter" attribut, il fonctionne très bien. Je pense que je vais recourir à la validation seulement à côté serveur.
Non, je n'ai pas. J'ai dû enlever le "accepter" attribut. Peut-être Jquery de Validation ne prend pas en charge la validation de type MIME pour "accepter".
Pour les types d'image, il ne devrait pas être un problème. Avez-vous essayé quelque chose comme
accept="image/gif,image/jpeg"
?oui. J'ai eu "image/gif,image/jpeg,image/png". J'ai même pris tout, mais un type mime, et la validation ne pourrait m'empêcher de télécharger quoi que ce soit. Quand j'enlève le "accepter" attribut, il fonctionne très bien. Je pense que je vais recourir à la validation seulement à côté serveur.
OriginalL'auteur escist | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
L'option "accepter les" règles de la méthode qui est construit en jQuery de Validation prend des valeurs dans un format ressemblant à "jpg|png".
"Accepter" attribut HTML prend un format ressemblant à "image/jpeg,image/png".
Il semblerait que jQuery Validation et le standard HTML sont incompatibles à cet égard.
Ici, vous pouvez en savoir plus sur jQuery de Validation "accepter" la règle et la HTML5 "accepter" attribut.
OriginalL'auteur Bryan
J'ai eu le même problème et ont dû recourir à désactiver la validation pour l'accepter attribut entièrement. J'ai ajouté la ligne suivante à ma page et il a travaillé:
Merci! C'est tout ce dont j'avais besoin. J'étais seulement intéressé par filtrage le fichier=boîte de dialogue ouvrir des fichiers pdf. J'ai l'intention de valider le fichier sur le serveur.
Qui a travaillé! Merci! -Edit - pour info, l'utilisation de la fonction anonyme qui a été fourni pour valider les élément si vous en avez besoin.
Le comportement de la "accepter" la méthode a changé avec la version 1.10.0, de sorte qu'il n'est pas plus nécessaire de le désactiver. Pour plus de détails consulter ma réponse.
OriginalL'auteur Emanuel
Ils ont changé le comportement de la "accepter" la méthode avec la version 1.10.0. Au lieu de vérifier l'extension du fichier, il regarde maintenant le type mime. L'ancien comportement est maintenant disponible comme extension de la méthode. Si vous avez juste à mettre à jour votre version de jquery validation plugin et vous avez terminé. J'ai remplacé ma version 1.9.0 avec 1.11.0 et jeu de mime valide types d'accepter-attribut. Il travaille maintenant comme prévu:
OriginalL'auteur Philipp Michael
Si vous mettez les deux formats que vous acceptez d'attribut, il doit travailler
OriginalL'auteur Gordo