Problème pour un script d'upload de fichier

Problème pour un script d'upload de fichier - PHP - Programmation

Marsh Posté le 20-06-2008 à 17:36:32    

Salut,
 
Je suis en train de faire un script pour uploader des fichiers.
 
Voici le code  

Code :
  1. if(isset($_POST['envoyer']))
  2. {
  3. $dossier = 'upload/';
  4. $fichier = basename($_FILES['fichier']['name']);
  5. $taille_maxi = 2000000;
  6. $taille = filesize($_FILES['fichier']['tmp_name']);
  7. echo 'taille : '.$taille;
  8. if($taille>$taille_maxi)
  9. {
  10.  $erreur = 'Le fichier est trop gros...';
  11. }
  12. if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
  13.  {
  14.   //On formate le nom du fichier ici...
  15.   $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  16.   $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  17.   if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
  18.   {
  19.   echo 'Upload effectué avec succès !';
  20.   }
  21.   else //Sinon (la fonction renvoie FALSE).
  22.   {
  23.   echo 'Echec de l\'upload !<br/>';
  24.   }
  25.  }
  26.  else
  27. {
  28.  echo $erreur;
  29. }
  30. }
  31. else
  32. {
  33. echo '<form method="POST" action="upload.php" enctype="multipart/form-data">';
  34.     echo 'Fichier (taille max : 2Mo) : <input type="file" name="fichier"><br/>';
  35.     echo '<input type="submit" name="envoyer" value="Envoyer le fichier">';
  36. echo '</form>';
  37. }


 
Lorsque je met un fichier qui fait moins que 2Mo c'est nikel.
Mais lorsque je met un fichier plus gros que 2Mo, ca m'affiche "echec de l'upload" alors que normalement ca devrais m'afficher le message d'erreur "Le fichier est trop gros ...".
Et alors quand je met un très gros fichier (>9Mo), le submit est meme pas pris en compte et ca me remet direct sur le formulaire (c'est meme pas traité).
 
Est ce que quelqu'un saurais pourquoi ca me fais ca ? Que j'ais au moins un message d'erreur quelque soit la taille.
 
Merci de vos réponses


Message édité par the_ourson le 20-06-2008 à 21:09:36
Reply

Marsh Posté le 20-06-2008 à 17:36:32   

Reply

Marsh Posté le 20-06-2008 à 19:43:28    

Personne n'a de réponse ? parce que je suis un peu perdu là

Reply

Marsh Posté le 22-06-2008 à 15:40:44    

tu peux toujours remplacer

Code :
  1. filesize($_FILES['fichier']['tmp_name']);

par ça

Code :
  1. $_FILES['fichier']['size'];

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed