Ce script permet d'uploader des fichiers images dont les extensions sont précisées dans le tableau associatif $extensions_ok. De plus il accepte les extensions en majuscules et vérifie les caractéristiques du fichier (poids, hauteur, largeur) avant de l'uploader ou non grâce à move_uploaded_file dans le répertoire destination définit par $target. Ce répertoire doit être créé manuellement sur le serveur distant.
<?php
//--------------------------------------
// DEFINITION DES VARIABLES
//--------------------------------------
$target = "files/"; // Repertoire cible
$max_size = 100000; // Taille max en octets du fichier
$width_max = 100; // Largeur max de l'image en pixels
$height_max = 100; // Hauteur max de l'image en pixels
$extensions_ok = array("jpg","gif","png","jpeg");
//------------------------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//------------------------------------------------------------
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($tmp,$chemin))
{
// Si upload OK alors on affiche le message de réussite
echo '<p>Image uploadée avec succès !</p>';
echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>';
echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>';
echo '<li>Largeur : '.$infos_img[0].' px</li>';
echo '<li>Hauteur : '.$infos_img[1].' px</li></ul>';
}
else
{
// Sinon on affiche une erreur système
echo '<p>Problème lors de l\'upload !</p>';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
echo '<p>Erreur dans les dimensions ou taille de l\'image !</p>';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p>Votre image ne comporte pas une extension valide !</p>';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<p>Le champ du formulaire est vide !</p>';
}
}
?>
<html>
<head>
<title>Upload d'une image sur le serveur !</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<p>Envoyer le fichier :</p>
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<input type="submit" value="Uploader">
</form>
</body>
</html>