Comment puis-je valider si l'utilisateur a sélectionné un fichier à télécharger?Comment valider un champ de téléchargement de fichier en utilisant Javascript/jquery
Edit: cogné
Comment puis-je valider si l'utilisateur a sélectionné un fichier à télécharger?Comment valider un champ de téléchargement de fichier en utilisant Javascript/jquery
Edit: cogné
Vérifiez qu'il est value
propriété:
En jQuery (depuis votre balise mentionne):
$('#fileInput').val()
Ou en JavaScript vanille:
document.getElementById('myFileInput').value
Dans Firefox au moins, l'inspecteur DOM me dit que les éléments d'entrée de fichier ont une propriété appelée files
. Vous devriez être capable de vérifier sa longueur.
document.getElementById('myFileInput').files.length
ne fonctionne pas en chrome donc probablement pas travailler dans IE soit –
Il est HTML5: http: // stackoverflow .com/questions/7684011/get-le-fichier-noms-de-multiple-file-upload-field – ANeves
Je suis arrivé ce de certains forum. J'espère que cela vous sera utile.
<script type="text/javascript">
function validateFileExtension(fld) {
if(!/(\.bmp|\.gif|\.jpg|\.jpeg)$/i.test(fld.value)) {
alert("Invalid image file type.");
fld.form.reset();
fld.focus();
return false;
}
return true;
} </script> </head>
<body> <form ...etc... onsubmit="return
validateFileExtension(this.fileField)"> <p> <input type="file"
name="fileField" onchange="return validateFileExtension(this)">
<input type="submit" value="Submit"> </p> </form> </body>
Bienvenue sur SO. Si vous obtenez du code d'une autre source, vous devriez l'attribuer correctement et/ou créer un lien vers celui-ci, car cela pourrait constituer une violation du droit d'auteur, et il est au moins courtois de donner un crédit là où il doit l'être. – Scott
Ma fonction vérifie si l'utilisateur a sélectionné le fichier ou non et vous pouvez également vérifier si vous souhaitez autoriser cette extension de fichier ou non.
Essayez ceci:
<input type="file" name="fileUpload" onchange="validate_fileupload(this.value);"> function validate_fileupload(fileName) { var allowed_extensions = new Array("jpg","png","gif"); var file_extension = fileName.split('.').pop().toLowerCase(); // split function will split the filename by dot(.), and pop function will pop the last element from the array which will give you the extension as well. If there will be no extension then it will return the filename. for(var i = 0; i <= allowed_extensions.length; i++) { if(allowed_extensions[i]==file_extension) { return true; // valid file extension } } return false; }
La boucle for doit être i
Miser sur la solution Ravinders, ce code arrête le formulaire soumis. Il peut être judicieux de vérifier l'extension sur le serveur aussi. Ainsi, les hackers ne téléchargent pas ce qu'ils veulent.
<script>
var valid = false;
function validate_fileupload(input_element)
{
var el = document.getElementById("feedback");
var fileName = input_element.value;
var allowed_extensions = new Array("jpg","png","gif");
var file_extension = fileName.split('.').pop();
for(var i = 0; i < allowed_extensions.length; i++)
{
if(allowed_extensions[i]==file_extension)
{
valid = true; // valid file extension
el.innerHTML = "";
return;
}
}
el.innerHTML="Invalid file";
valid = false;
}
function valid_form()
{
return valid;
}
</script>
<div id="feedback" style="color: red;"></div>
<form method="post" action="/image" enctype="multipart/form-data">
<input type="file" name="fileName" accept=".jpg,.png,.bmp" onchange="validate_fileupload(this);"/>
<input id="uploadsubmit" type="submit" value="UPLOAD IMAGE" onclick="return valid_form();"/>
</form>
http://www.angulartutorial.net/2016/05/file-upload-validation.html – Prashobh