Voici mon script d'uplaod d'image qui marchait bien jusqu'a aujourd'hui.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
<?php
  /**
   * function formatFileName
   * @access public
   * @param string - nom de fichier à formater
   * @param int - longueur maximale autorisée pour le nom de fichier
   * @return string - nom de fichier formaté
   * @desc Tronque éventuellement le nom de fichier, le convertit en minuscules et
   *           y élimine les caractères potentiellement dangereux.
   */         
   function formatFileName($aFileName, $aMaxLength = 50) {
     $aFileName = strToLower(subStr($aFileName, 0, $aMaxLength));
     $aFileName = ereg_replace('[^a-zA-Z0-9,._\+\()\-]', '_', $aFileName);
 
     return $aFileName;
   } // end of function formatFileName() /2
 
   /* PARAMETRES DE CONFIGURATION DU SCRIPT
    */
 
   /* chemin d'accès au répertoire d'upload (vers où le fichier uploadé temporaire sera transféré)*/
   /* ce répertoire doit EXISTER et être ACCESSIBLE EN ECRITURE !!*/
   $destination_dir = 'C:\Program Files\EasyPHP1-8\www\Phototheque_sp\photos\';
   
   /* taille maximale en octets du fichier à uploader*/
   $file_max_size = 1000000;
   
   /* extensions de fichiers autorisées*/
   $authorized_extensions = array('jpg', 'gif');

   /* TRAITEMENT PRINCIPAL
    */   
   
   /* vérifie l'existence du répertoire de destination */
   if (!is_dir($destination_dir)) {
     echo 'Veuillez indiquer un r&eacute;pertoire destination correct !';
     die();
   }
 
   // vérifie que répertoire de destination a des droits en écriture
   if (!is_writeable($destination_dir)) {
     echo 'Veuillez spécifier des droits en écriture pour le r&eacute;pertoire destination !';
     die();      
   }   
 
   // réception du formulaire
   if (isSet($_POST['submitFile'])) {
 
     // vérifie qu'un fichier a bien été soumis
     if (isSet($_FILES) && is_array($_FILES)) {
 
       // pas d'erreur lors de l'upload
       if ($_FILES['photo']['error'] == UPLOAD_ERR_OK) {
 
         // vérifie la taille en octets
         if ($_FILES['photo']['size'] <= $file_max_size) {
 
           // vérifie l'extension du fichier recu
           // il est aussi possible (et sans doute mieux) de se baser sur $_FILES['aFile']['type']
           // qui retourne le type MIME correspondant (par exemple: image/pjpeg)         
           $lastPos = strRChr($_FILES['photo']['name'], ".");
           if ($lastPos !== false && in_array(strToLower(subStr($lastPos, 1)), $authorized_extensions)) {
 
             // définit un nom de fichier destination unique à partir du nom du fichier original formaté
            /* $destination_file = time().formatFileName($_FILES['photo']['name']);           */ 
 
             // déplace le fichier uploadé du répertoire temporaire
             // vers les répertoire/fichier destination spécifiés
             if (move_uploaded_file($_FILES['photo']['tmp_name'],
                                         $destination_dir.DIRECTORY_SEPARATOR.$destination_file)) {
               echo '<h6>Fichier valide et upload&eacute; correctement.</h6>';   
             } else { // error sur move_uploaded_file
               echo '<h6>Le fichier n\'a pas &eacute;t&eacute; upload&eacute; correctement !</h6>';
             }
           } else { // pas d'extension ou mauvaise extension
             echo '<h6>Mauvaise extension !</h6>';
           }      
         } else { // Taille maximale dépassée
           echo '<h6>Fichier trop volumineux !</h6>';
         }
       } else { // Erreur lors de l'upload
         switch ($_FILES['photo']['error']){
           case UPLOAD_ERR_INI_SIZE:
              echo '<h6>Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
                       pour upload_max_filesize dans php.ini.</h6>';
              break;
           case UPLOAD_ERR_FORM_SIZE:
              echo '<h6>Le fichier upload&eacute; d&eacute;passe la valeur sp&eacute;cifi&eacute;e
                       pour MAX_FILE_SIZE dans le formulaire d\'upload.</h6>';
              break;
           case UPLOAD_ERR_PARTIAL:
              echo '<h6>Le fichier n\'a &eacute;t&eacute que partiellement upload&eacute;.</h6>';
              break;                            
           default:
              echo '<h6>Aucun fichier n\'a &eacute;t&eacute upload&eacute;.</h6>';
         } // switch
       }   
     } else { // aucun fichier reçu
       echo '<h6>Pas de fichier recu</h6>';
     }
   } // fin de réception de formulaire
?>
Il m'indique maintenant une erreur à la ligne 29 au niveau de la verification du format du fichier. Etant débutant en php, je n'arrive pas a trouver d'ou viens cette erreur.
Je vous remercie d'avance pour votre aide.