Porblème avec un code de upload ..

Eléphanteau du PHP | 21 Messages

16 déc. 2005, 20:01

Bonjour,

J'ai un problème avec un code qui permet d'uploader des images de son pc sur le site. Mais le code accepte seulement les .gif, pourtant il devrait accepter les .jpg, les .png et je ne vois pas pourquoi il ne veux pas !!

Merci de m'aider :
<?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érifie le type du fichier
   if (($_FILES['fichier']['type'] != 'image/png') and ($_FILES['fichier']['type'] != 'image/jpg') and ($_FILES['fichier']['type'] != 'image/gif') and ($_FILES['fichier']['type'] != 'image/JPEG'))
   {
      $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
   }
   
   // On vérifie le poids de l'image
   elseif ($_FILES['fichier']['size'] > $poids_max)
   {
      $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   }
   
   // On vérifie 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/jpg') { $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 = ''.$repertoire.''.$nom_fichier.'';?>
		
         Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value='<img src="<? echo $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
}
?>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 déc. 2005, 15:49

Salut, me semble que c'est IE qui encore tordu :

"image/jpeg" devient "image/pjpeg"

a verifier

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute