Je débute en php et je réalise un bout de code qui permet de vérifier le fichier uploadé par l’internaute (fichier image).
Trois Vérifications se font sur le fichier :
1 --> Le type
2 --> Le poids
3 --> les dimensions
Chaque vérification génère un message personnalisé pour internaute si son fichier ne respecte pas les conditions. (ex pour le poids : "le poids dépasse la limite autorisée")
J'ai fais quelques tests sur mon code PHP et la vérification se fait bien sur le poids (s'il dépasse = message d'erreur) et sur les dimensions (si différent = message d'erreur)
Par contre lorsque je teste la condition au niveau du type de fichier afin de vérifier que celui-ci est bien un jpg ou jpeg, le message d'erreur qui apparaît est celui des dimensions (le dernier dans la liste des conditions). Et je ne comprends pas d'où vient le problème...
Voici mon code :
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
</head>
<body>
<?php
if (isset($_FILES['fichier']))
{
//$_FILES existe on récupère les infos qui nous intéressent
$fichier=$_FILES['fichier']['name'];//nom réel de l'image
$size=$_FILES['fichier']['size']; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'];//type de l'image
//On récupère la taille de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type=="image/jpeg" || $type=="image/jpg")
{
if ($size<=180000)
{
if ($width==1500 && $height>=800 )
{
if (file_exists('./images_up/'.$fichier))
{
//Le fichier existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom )
$nom_final= preg_replace("`.jpeg`is",date("U").".jpeg",$fichier);
}
else {
$nom_final=$fichier; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
move_uploaded_file($tmp,'upload/'.$nom_final);
//Message indiquant que tout s'est bien passé
echo "L'image a été uploadée avec succès<br/>";
}
else {
//Le type est incorrect
echo "Votre image a été rejetée car le format n'est pas correct, nous n'acceptons que les JPG ou JPEG. Pas de PSD, zip, gif... ";
}
}
else {
//Le poids est incorrect
echo "Votre fichier est trop lourd, celui-ci ne peut pas depasser les 170ko";
}
}
else {
//Les dimensions sont incorrects
echo "Les dimensions de votre habillage ne sont pas bon. Il doivent faire 1500px de large par 1000px de haut";
}
}
}
//Pour tester si l'image est bien à sa place
echo '<img src="./images_up/'.$nom_final.'" border="0" />';
echo '<br/>';
echo '<a href="javascript:history.back();">Retour</a>';
?>
</body>
</html>
Merci pour votre aide !!