Probleme d'UPload d'image

Bonjour,

je poste ce message car je viens d'installer un script sur mon site mais il ne marche par correctement quelqu'un peut-il le modifier ou m'expliquer quel é le probleme de ce code voici le message d'erreur qui s'affiche quand je veus uploader une image en jpeg ou jpg -( Le fichier doit être au format *.jpeg, *.gif ou *.png .)je tien à preciser que gif marche .

<html>
<head><title>Uploadez vos images!</title></head>
<body>
<?php
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'uploads/'; // Repertoire d'upload
if (isset($_FILES['fichier']))
{
   
   // On vérifit le type du fichier
   if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif')
   {
      $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
   }
   
   // On vérifit le poids de l'image
   elseif ($_FILES['fichier']['size'] > $poids_max)
   {
      $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   }
   
   // On vérifit si le répertoire d'upload existe
   elseif (!file_exists($repertoire))
   {
      $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';     
   }
   
   // Si il y a une erreur on l'affiche sinon on peut uploader
   if(isset($erreur))
   {
      echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
   }
   else
   {
         
      // On définit l'extention du fichier puis on le nomme par le timestamp actuel
      if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
      if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
      if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
      if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
      $nom_fichier = time().$extention;
             
      // On upload le fichier sur le serveur.
      if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
      {
         $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.'';
         echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">';
      }
      else
      {
         echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
      }
     
   }
   
}
else
{
   ?>
   <form method="post" enctype="multipart/form-data">
      <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
      <input type="file" name="fichier">
      <input type="submit" value="Envoyer">
   </form>
   <?php
}
?>


Merci d'avance amicalement Sylvain
Configuration: Windows XP
Internet Explorer 7.0

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    rajoute
    echo $_FILES['fichier']['type'],'<BR>';
    juste avant ton
    // On vérifit le type du fichier

    Que vois-tu quand tu essayes de télécharger une image jpeg ?
    1. bonjour et merci Le père pour votre reponse aussi rapide

      En fait le script est installé sur http://www.votre-image.com essayez d'uploader une image en jpeg ou jpg vous aller mieu comprendre le probleme

      amicalement sylvain
      1. J'ai essayer d'ajouter le bout de script que vous m'avez donner maintenant mon message d'erreur é (image/pjpeg
        Le fichier doit être au format *.jpeg, *.gif ou *.png .)
        1. Bonjour

          On ne comprend pas mieux le problème en allant voir sur le site
          Je répète :

          rajoute
          echo $_FILES['fichier']['type'],'<BR>';
          juste avant ton
          // On vérifit le type du fichier

          Que vois-tu quand tu essayes de télécharger une image jpeg ?
          1. Ca ne marche pas mieux en metant le code ca me marque ce message
            (image/pjpeg Le fichier doit être au format *.jpeg, *.gif ou *.png .Retour )

            pourtant c un jpeg de petite taille que j'envoie
            1. Mon code n'était pas pour réparer mais pour diagnostiquer.
              remplace echo $_FILES['fichier']['type'],'<BR>'; par print_r($_FILES)
              1. ca me m'affiche carement plus la page le message d'erreur é (Parse error: syntax error, unexpected T_IF in /home/votreima/public_html/index.php on line 209)
                1. ok, vu

                  les images sont transmises avec le type image/pjpeg
                  Modifie ton script pour accepter aussi ce type
                  1. donc je rajoute if ($_FILES['fichier']['type'] == 'image/pjpeg') { $extention = '.pjpeg'; }
                    1. Faut pas oublier de faire le test dans le if après // On vérifit le type du fichier
                      1. //Indique si le fichier a été téléchargé
                        if(!is_uploaded_file($_FILES['image']['tmp_name']))
                        echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
                        else {
                        //liste des extensions possibles
                        $extensions = array("/png","/gif","/jpg","/jpeg","/bmp","/pjpeg");
                        echo $extensions;

                        //récupère la chaîne à partir du dernier / pour connaître l'extension
                        $extension = strrchr($_FILES['image']['type'],'/');
                        echo $extension;

                        //vérifie si l'extension est dans notre tableau
                        if(!in_array($extension, $extensions))
                        echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
                        else {

                        //on fait tout ce qu'on veut ici

                        }

                        voila ca marhe tres bien chez moi....by