Script PHP qui ne fonctionne pas "bien"

Me -  
Popoï_ Messages postés 179 Statut Membre -
J'ai écrit un Script censé permettre d'envoyer des fichiers et des ne pas les accepter si ils ne correspondent pas aux critères requis (il faut que le fichier soit une image ...).
Le problème c'est que lorsque le script n'accepte pas les Fichiers .JPG, .JPEG, .PNG ... (il n'accepte pas les images dont l'extension est en MAJUSCULE).
De plus, je n'arrive pas à modifier ce script afin qu'il affiche un message si l'extension n'est pas acceptée.
Aidez mois SVP, je galère depuis des jours !



Voi le script :

<form method="post" enctype="multipart/form-data">  
       <p>  
       Formulaire d'envoi de fichier :<br />  
       <input type="file" name="monfichier" /><br />  
       <input type="submit" value="Envoyer le fichier" />  
       </p>  
      </form>  
        
      <?php  
      // Text s'il n ya pas d'erreur et si le fichier existe  
      if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)  
      {  
       // Fichier ne dépassant pas une certaine taille  
       if ($_FILES['monfichier']['size'] <= 1000000)  
       {  
       // Extension autorisée ou pas  
       $infosfichier = pathinfo($_FILES['monfichier']['name']);  
       $extension_upload = $infosfichier['extension'];  
       $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');  
       if (in_array($extension_upload, $extensions_autorisees))  
       {  
       // Validation du fichier  
       move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));  
       echo "Votre photo a bien été publiée";  
       }  
       }  
      }  
        
      $erreurspossibles = $_FILES['monfichier']['error'];  
      switch ($erreurspossibles)  
      {  
       case UPLOAD_ERR_NO_FILE:  
       echo "Indiquez la photo que vous voulez publier";  
       break;  
        
       case UPLOAD_ERR_INI_SIZE OR UPLOAD_ERR_FORM_SIZE OR UPLOAD_ERR_INI_SIZE AND UPLOAD_ERR_FORM_SIZE:  
       echo "Le fichier dépasse la taille autorisée";  
       break;  
        
       case UPLOAD_ERR_PARTIAL:  
       echo "Une seule partie du fichier a été transférée";  
       break;  
        
       default:  
       echo "";  
      }  
        
      ?>
A voir également:

2 réponses

le père
 
Bonjour,

Tu pourrais ajouter à ta table des extension autorisées les extensions en majuscules. Mais le plus simple est encore de convertir l'extension reçue en minuscules :
 if (in_array(strtolower($extension_upload), $extensions_autorisees)) 
1
Me
 
Aucune de ces methodes ne marche. Je les ai déja essaiyés toutes les deux
0
Popoï_ Messages postés 179 Statut Membre 76
 
php sensible à la casse?
0
Me
 
C'est-à-dire ?
0
Popoï_ Messages postés 179 Statut Membre 76
 
dans "extensions autorisées", tu écris 'jpg' et pas 'JPG', 'jpeg' et pas 'JPEG', etc... Donc si php est sensible à la casse, il considère "jpeg" différent de "JPEG" et là: problème... Donc c'est peut-être une autre erreur, mais commence par là, déjà.
0
Me
 
Oui c'est sur cela que je vais chercher !
Merci pour cette indication
0
Popoï_ Messages postés 179 Statut Membre 76
 
Alors? ça donne quoi?
0