Comment vérifier le format d'un fichier avant upload en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-06-30 16:47:33
Question

Comment puis-je vérifier le format d'un fichier, dans un formulaire HTML, avant upload, en JavaScript ?

J'ai un formulaire du type :

<input type="file" id="fichier"> 

Je voudrais n'autoriser que les formats images, merci.

Réponse

Pour vérifier le format d'un fichier avant upload, en JavaScript, on peut stocker la liste des extensions autorisées dans une variable et comparer ensuite les extensions.

Pour séparer l'extension du fichier, on peut utiliser les expressions régulières.

Voici un exemple pour vérifier qu'un fichier est une image au format gif, png, jpg ou jpeg :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Comment vérifier le format d'un fichier avant upload en JavaScript ?</title>
</head>
<body>
<input type="file" id="fichier" onchange="return Validation()"> 
<script> 
function Validation() 
{ 
var fichier = document.getElementById('fichier'); 
var valeur = fichier.value; 
var extensions = /(\.jpg|\.jpeg|\.png|\.gif)$/i; 
	if (!extensions.exec(valeur))
	{ 
		alert('Format de fichier non valide'); 
		fichier.value = ''; 
		return false; 
	}  
	else  
	{ 
		if (fichier.files && fichier.files[0])
		{ 
			alert('Format de fichier valide');
		} 
	} 
} 
</script> 
</body>
</html>

Remarque : Pour des raisons de sécurité il est fortement conseillé de vérifier également le format de fichier coté serveur. Voici par exemple comment vérifier qu'un fichier est une image en PHP.