Wd_upload v2

Contenu du snippet

Ce petit script vous permet d'uploader des fichiers images (ou autres en adaptant le script) dans un répertoire de votre serveur FTP. Les extensions autorisées sont définies dans un tableau associatif $extensions_ok en tête de script. Il est possible de configurer, via les premières variables : les extensions autorisées, le répertoire cible (à créer manuellement sur le serveur distant via client FTP), la largeur max, la hauteur max et la taille maximale des images. Le script se charge de vérifier si ces paramètres sont corrects avant l'upload final grâce à move_uploaded_file() par le protocole HTTP.

Source / Exemple :


<?php

//------------------------------------------
// Script réalisé par Webdeb73
// Le 19/12/2004
// Licence GNU / GPL
// webmaster@webmaster-debutant.net
// http://www.webmaster-debutant.net
//------------------------------------------

//--------------------------------------
//  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
//------------------------------------------------------------

$nom_file   = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name'];
$chemin     = $target.$_FILES['fichier']['name'];

$extension = substr(strrchr($nom_file, "."), 0); // Récupération de l'extension

//---------------------------
//  SCRIPT D'UPLOAD
//---------------------------

if($_POST['posted'])
{

// On vérifie si le champ est rempli

  if($_FILES['fichier']['name'])
  {
     // On vérifie l'extension du fichier

    if(in_array(strtolower($extension),$extensions_ok))
    {
       // On récupère les dimensions du fichier

        $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
            
        // On vérifie les dimensions et taille de l'image

        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 align="center">';
                echo '<font face="Verdana" size="2" color="#FF0000">';
                echo '<b>Image uploadée avec succès !</b>';
                echo '</font>';
                echo '<hr>';
                echo '<b>Fichier :</b> '.$_FILES['fichier']['name'].'</br>';
                echo '<b>Taille :</b> '.$_FILES['fichier']['size'].' Octets</br>';
                echo '<b>Largeur :</b> '.$infos_img[0].' px</br>';
                echo '<b>Hauteur :</b> '.$infos_img[1].' px</br>';
                echo '<hr>';
                echo '<br><br>';
            }
               else
            {

               // Sinon on affiche une erreur système

                echo '<p align="center">';
                echo '<font face="Verdana" size="2" color="#FF0000">';
                echo '<b>Problème lors de l\'upload !</b>';
                echo '</font><br><br>';
            }
        }
          else
        {

          // Sinon erreur sur les dimensions et taille de l'image

            echo '<p align="center">';
            echo '<font face="Verdana" size="2" color="#FF0000">';
            echo '<b>Erreur dans les dimensions ou taille de l\'image !</b>';
            echo '</font><br><br>';
        }
    }
      else
    {

      // Sinon on affiche une erreur pour l'extension

        echo '<p align="center">';
        echo '<font face="Verdana" size="2" color="#FF0000">';
        echo '<b>Votre image ne comporte pas une extension valide !</b>';
        echo '</font><br><br>';
    }
   }
    else
   {

    // Sinon on affiche une erreur pour le champ vide

    echo '<p align="center">';
    echo '<font face="Verdana" size="2" color="#FF0000">';
    echo '<b>Le champ du formulaire est vide !</b>';
    echo '</font><br><br>';
   }
}
?>
<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">
<font face="Verdana" size="2" color="#000000">
<b>Envoyer le fichier :</b>
</font>
<br><br>
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<input type="submit" value="Uploader">
</form>
</body>
</html>

Conclusion :


Ca y'est le script est modifié pour que toutes les extensions définies dans le tableau associatif soient vérifiées avant un upload. Merci à Juki_webmaster de m'avoir signaler le bug.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.