[Upload] vérification du type de fichier envoyé
bonjour à tous, sur plusieurs de mes sites j'utilises le code suivant pour uploader des images, mais la, je viens d'essayer de l'adapter à un autre de mes sites, et quoi que j' upload comme image, sa me marque :
"Vous devez uploader un fichier de type png, gif, jpg, jpeg !"
Voici le code en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
if (isset($_POST['enreg_img']))
{
$dossier = 'upload/';
$fichier = basename($_FILES['img']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['img']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['img']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg !';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['img']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
$id=$_GET['modif_img'];
mysql_query("UPDATE nav_accueil SET img='$fichier' WHERE id='$id'");
echo 'L\' image a bien été modifiée !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
}
else
{
?>
<form method="post" action="">
<p><b>Modifier l' image de l' article :</b></p>
<input type="file" name="img" /> <input type="submit" name="enreg_img" />
</form>
<?php
} |
Merci par avance pour votre aide, jonathan .