jQuery - INPUT type=Fichier , Type de fichier Image les options de Validation?
J'ai le texte suivant:
<input id="user_profile_pic" name="user[profile_pic]" type="file">
Sur le serveur j'ai assurez-vous que c'est une image, mais je veux vérifier sur le côté client d'abord.
Comment avec jQuery puis-je alerter l'utilisateur si le fichier d'entrée de fichier sélectionné n'est pas un gif,jpg,png ou bmp?
Grâce
Vous devez vous connecter pour publier un commentaire.
Vous voulez vérifier ce que la valeur de l'élément est, quelque chose le long des lignes de:
Modifier
Code modifié en fonction des commentaires - maintenant, supprime la valeur du fichier sélectionné si ce n'est une image.
element.wrap('<form>').closest('form').get(0).reset(); element.unwrap();
C'est assez simple, pas besoin de JavaScript de validation .
Il suffit d'écrire cela et il va accepter uniquement les fichiers d'image.
Vous pouvez utiliser une expression régulière:
Bien sûr, vous pouvez ajouter plusieurs formats de l'expression régulière. Il y a de plus complexe et complète de façons de le faire, mais cette méthode permettra d'accomplir la tâche tant que le chemin du fichier image saisie se termine par une image standard de l'extension de fichier.
var val1=...
,var val2=...
var val3 =...
if (!val.match(/(?:gif|jpg|png|bmp)$/)) {
Il y a peut être des navigateurs qui vous permettent de créer un
<img/>
du chemin d'accès donné, que l'on pourrait vérifier si il est une image réelle ou pas(si ce n'est le onerror événement doit se déclencher sur l'image et il aura une largeur/hauteur de 0).Mais comme cela ne fonctionne que dans certains navigateurs et est un de sécurité-risque(dans mon esprit) je voudrais pas suggérer de le faire, donc ma réponse est: vous ne pouvez pas valider il y a quoi que ce soit.
Vérification du fichier de l'extension comme suggéré par Alex peut être une option, mais l'extension de fichier ne garantit pas si c'est une image. Cependant, comme un simple pré-enregistrement(pas de validation), il pourrait être utile.
Comment peut-on vérifier que l'utilisateur sélectionne le fichier d'image?
C'est un travail comme prévu, un fichier texte avec
.png
extension de passer iciinput[type=file][accept=image/*]
Au départ, il se cache
non-image
fichiers de l'utilisateur. Mais ce filtre fonctionne par des extensions de trop. Et l'utilisateur peut également entrer manuellement tout nom de fichier existant.Nous pouvons vérifier le type mime de la suite
dataUrl
, il commence avecdata:mimetype;base64,...
. Donc, nous avons besoin deimage/*
type mime.Vous pouvez essayer comme ceci