Projet

Général

Profil

Paste
Télécharger (2,78 ko) Statistiques
| Branche: | Révision:

root / uploadTest.php @ 1f5db711

1
<?php
2
 
3
// Constantes
4
define('TARGET', '/var/www/data/tsf2/vpongnian/panorama/upload/');    // Repertoire cible
5
define('MAX_SIZE', 300000000);    // Taille max en octets du fichier
6
define('WIDTH_MAX', 200000);    // Largeur max de l'image en pixels
7
define('HEIGHT_MAX', 100000);    // Hauteur max de l'image en pixels
8

    
9

    
10
// Creation du repertoire cible si inexistant
11

    
12
/*if( !is_dir(TARGET) ) {
13
  if( !mkdir(TARGET, 0755) ) {
14
    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 !');
15
  }
16
}
17
*/
18

    
19
// Script d'upload
20

    
21
        // Variables
22
        $extension = '';
23
        $message = '';
24
        $nomImage = '';
25
        $url='';
26
        $already=false;
27
        
28
        // Tableaux de donnees
29
        $tabExt = array('jpeg','tif','jpg');    // Extensions autorisees
30
        $infosImg = array();
31
        $stats = array();
32
        
33
        
34
        if(!empty($_POST))
35
        {
36
                
37
          // On verifie si le champ est rempli
38
          if( !empty($_FILES['file']['name']) )
39
          {
40
                  
41
            // Recuperation de l'extension du fichier
42
            $extension  = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
43
         
44
            // On verifie l'extension du fichier
45
            if(in_array(strtolower($extension),$tabExt))
46
            {
47
              // On recupere les dimensions du fichier
48
              $infosImg = getimagesize($_FILES['file']['tmp_name']);
49
         
50
              // On verifie les dimensions et taille de l'image
51
              if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['file']['tmp_name']) <= MAX_SIZE))
52
              {
53
                // Parcours du tableau d'erreurs
54
                if(isset($_FILES['file']['error']) 
55
                  && UPLOAD_ERR_OK === $_FILES['file']['error'])
56
                {
57
                  // On bouge le fichier uploadé dans un répertoire a son nom
58
                  // on garde en cache la variable $url qui permettra de passer sur une page envoyer.php plus avancée.
59
                 
60
                  $err = $_FILES['file']['error'];
61
                    echo "<script>alert(\"$err\");</script>";
62
                    $url ="envoyer.php?dir=upload/".$_FILES['file']['name']."&img=".$_FILES['file']['name'];
63
                    move_uploaded_file($_FILES['file']['tmp_name'],TARGET.basename($_FILES['file']['name']));
64
                                apc_store('link', $url);
65
                                
66
                }
67
                else
68
                {
69
                        $message = 'Une erreur interne a empêché l\'uplaod de l\'image : '. $_FILES['file']['error'];
70
                }
71
              }
72
              else
73
              {
74
                // Sinon erreur sur les dimensions et taille de l'image
75
                $message = 'Erreur dans les dimensions de l\'image !';  
76
              }
77
            }
78
            else
79
            {
80
              // Sinon on affiche une erreur pour l'extension
81
              $message = 'L\'extension du fichier est incorrecte !';
82
            }
83
          }
84
          else
85
          {
86
            // Sinon on affiche une erreur pour le champ vide
87
                 $message = 'Veuillez remplir le formulaire svp !';
88
          }
89
          // On met en cache un message d'erreur.
90
          apc_store('info', $message);
91
        }
92
?>