alexroge

Upload Image

Mar 12th, 2015
406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.38 KB | None | 0 0
  1. <?php
  2.  
  3. // Constantes
  4. define('TARGET', 'photos/');        // Repertoire cible
  5. define('MAX_SIZE', 100000);     // Taille max en octets du fichier
  6. define('WIDTH_MAX', 800);       // Largeur max de l'image en pixels
  7. define('HEIGHT_MAX', 800);      // Hauteur max de l'image en pixels
  8. // Tableaux de donnees
  9. $tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
  10. $infosImg = array();
  11. // Variables
  12. $extension = null;
  13. $message = null;
  14.  
  15.     //Creation du repertoire cible si inexistant
  16.         if( !is_dir(TARGET) ) {
  17.     if( !mkdir(TARGET, 0700) ) {
  18.         exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
  19.     }
  20. }
  21. //Script d'upload
  22.   if($_POST)
  23. {
  24.   // On verifie si le champ est rempli
  25.   if( !empty($_FILES['fichier']['name']) )
  26.   {
  27.     // Recuperation de l'extension du fichier
  28.     $extension  = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
  29.  
  30.     // On verifie l'extension du fichier
  31.     if(in_array(strtolower($extension),$tabExt))
  32.     {
  33.         // On recupere les dimensions du fichier
  34.         $infosImg = getimagesize($_FILES['fichier']['tmp_name']);
  35.  
  36.         // On verifie le type de l'image
  37.         if($infosImg[2] >= 1 && $infosImg[2] <= 14)
  38.         {
  39.             // On verifie les dimensions et taille de l'image
  40.             if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
  41.             {
  42.                 // Si c'est OK, on teste l'upload
  43.                 if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$_FILES['fichier']['name']))
  44.                 {
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.     // Message de reussite
  56.                     $message = 'Upload réussi !';
  57.                 }
  58.                    else
  59.                 {
  60.                     // Sinon on affiche une erreur systeme
  61.                     $message = 'Problème lors de l\'upload !';
  62.                 }
  63.             }
  64.               else
  65.             {
  66.                 // Sinon erreur sur les dimensions et taille de l'image
  67.                 $message = 'Erreur dans les dimensions de l\'image !';
  68.             }
  69.         }
  70.           else
  71.         {
  72.             // Sinon erreur sur les dimensions et taille de l'image
  73.             $message = 'Le fichier à uploader n\'est pas une image !';
  74.         }
  75.     }
  76.       else
  77.     {
  78.         // Sinon on affiche une erreur pour l'extension
  79.         $message = 'L\'extension du fichier est incorrecte !';
  80.     }
  81.    }
  82.     else
  83.    {
  84.         // Sinon on affiche une erreur pour le champ vide
  85.         $message = 'Veuillez remplir le formulaire svp !';
  86.    }
  87. }
  88.  
  89. ?>
  90. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  91.     <head>
  92.         <title>Upload d'une image sur le serveur !</title>
  93.     </head>
  94.     <body>
  95.         <?php
  96.             if( !empty($message) ) {
  97.                 echo '<p>',"\n";
  98.                 echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n";
  99.                 echo "\t</p>\n\n";
  100.             }
  101.         ?>
  102.         <!-- Debut du formulaire -->
  103.         <form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
  104.             <fieldset>
  105.                 <legend>Image</legend>
  106.                     <p>
  107.                         <label for="fichier_a_uploader" title="Recherchez le fichier à uploader !">Envoyer le fichier :</label>
  108.                         <input type="hidden" name="posted" value="1" />
  109.                         <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" />
  110.                         <input name="fichier" type="file" id="fichier_a_uploader" />
  111.                         <input type="submit" name="submit" value="Uploader" />
  112.                     </p>
  113.             </fieldset>
  114.         </form>
  115.         <!-- Fin du formulaire -->
  116.     </body>
  117. </html>
Advertisement
Add Comment
Please, Sign In to add comment