Renommer fichier à l'upload

Renommer fichier à l'upload - PHP - Programmation

Marsh Posté le 07-02-2008 à 22:52:07    

Salut,
 
j'ai pris un code d'upload sur un autre site, et j'aimerais rajouter des lignes pour renommer le fichier si il éxiste, genre fichier(2) etc... Mais j'ai penser que si le fichier fichier(2) existe, je ne sais pas comment faire pour que ça devienne 3 et ainsi de suite voila le code:
 
 

Code :
  1. <?php
  2. $dossier = 'upload-avatar/';
  3. $fichier = basename($_FILES['avatar']['name']);
  4. $taille_maxi = 100000;
  5. $taille = filesize($_FILES['avatar']['tmp_name']);
  6. $extensions = array('.png', '.gif', '.jpg', '.jpeg');
  7. $extension = strrchr($_FILES['avatar']['name'], '.');
  8. //Début des vérifications de sécurité...
  9. if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
  10. {
  11.      $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...';
  12. }
  13. if($taille>$taille_maxi)
  14. {
  15.      $erreur = 'Le fichier est trop gros...';
  16. }
  17. if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
  18. {
  19.      //On formate le nom du fichier ici...
  20.      $fichier = strtr($fichier,
  21.           'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
  22.           'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  23.      $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  24.           ///////////////////////////////
  25.  //       Renommer            //
  26.  ///////////////////////////////
  27.      // Voila les codes que j'ai rajouter, j'aimerais qu'on me les ameliore
  28.      // if(file_exists($fichier)) {
  29.      // $fichier == $fichier
  30.      // }
  31.  ///////////////////////////////
  32.  //       Renommer            //
  33.  ///////////////////////////////
  34.  
  35.      if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
  36.      {
  37.           echo 'Upload effectué avec succès !';
  38.      }
  39.      else //Sinon (la fonction renvoie FALSE).
  40.      {
  41.           echo 'Echec de l\'upload !';
  42.      }
  43. }
  44. else
  45. {
  46.      echo $erreur;
  47. }
  48. ?>


 
 
Le code que j'ai rajouter:

Code :
  1. if(file_exists($fichier)) {
  2. $fichier == ''.$fichier.'(2)';
  3. }


 
Merci de m'aider !

Reply

Marsh Posté le 07-02-2008 à 22:52:07   

Reply

Marsh Posté le 07-02-2008 à 23:00:25    

Si tu veux être sur d'avoir un fichier qui n'existe pas, tu peux rajouter le timestamp au lieu d'un nombre fixe.
 
Sinon, tu peux écrire la valeur max dans un fichier texte, et au moment où tu renommes ton fichier, tu lis la valeur dans ce fichier et la remplace pour le prochain upload.

Reply

Marsh Posté le 07-02-2008 à 23:12:56    

Ah oui bonne idée merci ^^

Reply

Marsh Posté le 08-02-2008 à 08:22:10    

Meci, et encore une choes s'il vous plaît...
Vous pouvez me rajouter des lignes de codes pour maximiser la taille par 117x117px ?
Meci ^^

Reply

Marsh Posté le 08-02-2008 à 09:18:10    

On peut pas te rajouter (on n'a pas le temps et c'est hors charte), mais dirige-toi vers l'extension GD qui permet de faire ça

Reply

Marsh Posté le 08-02-2008 à 13:27:02    

Je comprends pas trop, ce que j'essaie de faire,c'est
if($tailleimage  < 117x117px)
{ echo "erreur";}
Vous pouvez m'aider s'il vous plaît... :(  
 
Je veux juste verifier si la taille est plus grand que 117x117px...

Reply

Marsh Posté le 08-02-2008 à 13:30:41    

Comme dit, regarde du côté de la lib GD. La fonction getimagesize permet de récupérer des infos sur une image (et de vérifier que c'est une image valide).
 
Après les fonctions imagecreatefromjpeg, imagecreatefrompng etc. permettent de créer une image GD, et la fonction imagecopyresampled peut la redimensionner

Reply

Sujets relatifs:

Leave a Replay

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