[AIDE] - Script Upload + modif nom de fichier

- Script Upload + modif nom de fichier [AIDE] - PHP - Programmation

Marsh Posté le 22-04-2006 à 17:55:11    

Salut à tous,
 
Je suis entrain de me faire un script pour uploader des fichiers sur mon FTP free. Pour l'instant il marche très bien mais j'ai un gros prob.
 
-> Si j'upload une image avec le nom 001.jpg (exemple)
-> Et que j'upload juste apres une image avec le même nom 001.jpg
-> Alors la deuxieme image écrase la première.
 
Donc c'est tout a fait normal car j'ai pas prevu cela à mon script.
 
D'apres ce que j'ai pu lire sur le net, la solution serai de renommer les fichiers uploadés avec l'année / le jours / l'heure / la minute / et même la seconde
 
Ce qui me donne ce genre de script (trouvé sur un site):
 

Code :
  1. //on va chercher la date de la journée sous la forme annéemoisjourheureminuteseconde (ex : 200361015159)
  2.        $tmp=getdate();
  3.        $jour=$tmp['mday'];
  4.        $mois=$tmp['mon'];
  5.        $annee=$tmp['year'];
  6.        $h=$tmp['hours'];
  7.        $m=$tmp['minutes'];
  8.        $s=$tmp['seconds'];
  9.        $tout="$annee$mois$jour$h$m$s";
  10.        //on calcule le nombre de lettres avant le premier point
  11.        $res = strpos("$upfile_name","." );
  12.        //on extrait le nombre de lettre avant le point
  13.        $type2=left($upfile_name,$res);


 
D'ou ma question, comment l'integré à mon script actuel qui marche bien :
 

Code :
  1. <?php
  2. // ############################################################ //
  3. // Définition des variable globales, modifiables à volonté  //
  4. // ############################################################ //
  5. // Récupération du dossier dans lequel le fichier sera uploadé //
  6. $DESTINATION_FOLDER = $_POST["upload/"];       //
  7. // Taille maximale de fichier, valeur en bytes     //
  8. $MAX_SIZE = 3000000;           //
  9. // Récupération de l'url de retour        //
  10. $RETURN_LINK = $_SERVER['HTTP_REFERER'];      //
  11. // Définition des extensions de fichier autorisées (avec le "." )//
  12. $AUTH_EXT = array(".htm", ".html", ".jpg", ".txt", ".png",  //
  13. ".bmp", ".gif", ".JPG", ".php3", ".rar", ".ace", ".zip", ".mp3", ".wav" );           //
  14. // ############################################################ //
  15. // Fonction permettant de créer un lien de retour automatique
  16. function createReturnLink(){
  17. global $RETURN_LINK;
  18. echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
  19. }
  20. // Fonction permettant de vérifier si l'extension du fichier est
  21. // autorisée.
  22. function isExtAuthorized($ext){
  23. global $AUTH_EXT;
  24. if(in_array($ext, $AUTH_EXT)){
  25.  return true;
  26. }else{
  27.  return false;
  28. }
  29. }
  30. // On vérifie que le champs contenant le chemin du fichier soit
  31. // bien rempli.
  32. if(!empty($_FILES["file"]["name"])){
  33. // Nom du fichier choisi:
  34. $nomFichier = $_FILES["file"]["name"] ;
  35. // Nom temporaire sur le serveur:
  36. $nomTemporaire = $_FILES["file"]["tmp_name"] ;
  37. // Type du fichier choisi:
  38. $typeFichier = $_FILES["file"]["type"] ;
  39. // Poids en octets du fichier choisit:
  40. $poidsFichier = $_FILES["file"]["size"] ;
  41. // Poids en Kilo-octets du fichier choisit:
  42. $poidsFichierK = $poidsFichier/1024;
  43. // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
  44.     $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
  45. // Code de l'erreur si jamais il y en a une:
  46. $codeErreur = $_FILES["file"]["error"] ;
  47. // Extension du fichier
  48. $extension = strrchr($nomFichier, "." );
  49. // Si le poids du fichier est de 0 bytes, le fichier est
  50. // invalide (ou le chemin incorrect) => message d'erreur
  51. // sinon, le script continue.
  52. if($poidsFichier <> 0){
  53.  // Si la taille du fichier est supérieure à la taille
  54.  // maximum spécifiée => message d'erreur
  55.  if($poidsFichier < $MAX_SIZE){
  56.   // On teste ensuite si le fichier a une extension autorisée
  57.   if(isExtAuthorized($extension)){
  58.    // Ensuite, on copie le fichier uploadé ou bon nous semble.
  59.           $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
  60.           if($uploadOk){
  61.                         echo "L'upload a réussi !<br><br>";
  62.                                         echo "Nom du Fichier : $nomFichier<br>";
  63.                                         echo "Taille du Fichier : $poidsFichierK Ko<br>";
  64.                         echo "URL du Fichier : /upload/$nomFichier<br><br>";
  65.          echo "Aperçu:<br><br>";
  66.          switch ($extension) { //Tu fais écrire du html par le php
  67.                case ".jpeg": echo "<IMG SRC='$nomFichier'>";break;
  68.                                         case ".bmp": echo "<IMG SRC='$nomFichier'>";break;
  69.          case ".gif": echo "<IMG SRC='$nomFichier'>";break;
  70.          case ".png": echo "<IMG SRC='$nomFichier'>";break;
  71.          case ".jpg": echo "<IMG SRC='$nomFichier'>";break;
  72.          case ".rar": echo "<IMG SRC='im/file/archive.gif'>";break;
  73.          case ".ace": echo "<IMG SRC='im/file/archive.gif'>";break;
  74.          case ".zip": echo "<IMG SRC='im/file/archive.gif'>";break;
  75.          case ".mp3": echo "<IMG SRC='im/file/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  76.          case ".wav": echo "<IMG SRC='im/file/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  77.             default: echo "<IMG SRC='im/file/inconnu.gif'>"; }
  78.          echo "<br><br>";
  79.                                         echo(createReturnLink());
  80.    }else{
  81.     echo("L'upload a échoué !<br><br>" );
  82.     echo(createReturnLink());
  83.    }
  84.   }else{
  85.    echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>" );
  86.    echo (createReturnLink()."<br>" );
  87.   }
  88.  }else{
  89.   $tailleKo = $MAX_SIZE / 1000;
  90.   echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>" );
  91.   echo (createReturnLink()."<br>" );
  92.  }
  93. }else{
  94.  echo("Le fichier choisi est invalide !<br>" );
  95.  echo (createReturnLink()."<br>" );
  96. }
  97. }else{
  98. echo("Vous n'avez pas choisi de fichier !<br>" );
  99. echo (createReturnLink()."<br>" );
  100. }
  101. ?>


 
Voila merci bien, car le je suis perdu dans mes lignes depuis ce matin.
 
A+ Dams

Message cité 2 fois
Message édité par Usernet le 22-04-2006 à 17:56:35
Reply

Marsh Posté le 22-04-2006 à 17:55:11   

Reply

Marsh Posté le 22-04-2006 à 18:30:14    

Usernet a écrit :

[...] D'apres ce que j'ai pu lire sur le net, la solution serai de renommer les fichiers uploadés [...]

Code :
  1. [...]
  2. $nomFichier = $_FILES["file"]["name"] ;
  3. [...]




 
?


Message édité par sielfried le 22-04-2006 à 18:30:26

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 22-04-2006 à 19:31:49    

Tu pourrai pas en dire plus que un : "?"

Reply

Marsh Posté le 22-04-2006 à 20:24:37    

Ben ça me paraît évident, tu mets ce que tu veux dans $nomFichier, par exemple en y concaténant toutes les infos que tu as récupérées sur la date et l'heure.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 22-04-2006 à 21:55:52    

En faite j'aurai du prevenir que je suis pas au star du php. C'est pour cela que je demande c'est information. Donc j'aimerai avoir plus d'info.
 
voila merci bien

Reply

Marsh Posté le 23-04-2006 à 17:46:39    

up

Reply

Marsh Posté le 23-04-2006 à 18:21:34    

$nomFichier="LENOMCOMMETUVEUX";
ou
$nomFichier="UNIDENTIFIANTUNIQUE".$_FILES["file"]["name"] ;
ou....
 
Bref c'est toi qui vois :o


Message édité par gooopil le 23-04-2006 à 18:22:59
Reply

Marsh Posté le 24-04-2006 à 17:27:26    

Voila j'ai fait la modifé pour avoir un fichier qui se nom en fonction de "année mois jour heure minute seconde"
 
je vous colle pas tout juste le principal :
 

Code :
  1. if(!empty($_FILES["file"]["name"])){
  2. // Nom du fichier choisi:
  3. $nomFichier = $_FILES["file"]["name"] ;
  4. // Nom temporaire sur le serveur:
  5. $nomTemporaire = $_FILES["file"]["tmp_name"] ;
  6. // Type du fichier choisi:
  7. $typeFichier = $_FILES["file"]["type"] ;
  8. // Poids en octets du fichier choisit:
  9. $poidsFichier = $_FILES["file"]["size"] ;
  10. // Poids en Kilo-octets du fichier choisit:
  11. $poidsFichierK = $poidsFichier/1024;
  12. // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
  13.     $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
  14. // Code de l'erreur si jamais il y en a une:
  15. $codeErreur = $_FILES["file"]["error"] ;
  16. // Extension du fichier
  17. $extension = strrchr($nomFichier, "." );
  18. // Si le poids du fichier est de 0 bytes, le fichier est
  19. // invalide (ou le chemin incorrect) => message d'erreur
  20. // sinon, le script continue.
  21. if($poidsFichier <> 0){
  22.  // Si la taille du fichier est supérieure à la taille
  23.  // maximum spécifiée => message d'erreur
  24.  if($poidsFichier < $MAX_SIZE){
  25.   // On teste ensuite si le fichier a une extension autorisée
  26.   if(isExtAuthorized($extension)){
  27.   //on va chercher la date de la journée sous la forme annéemoisjourheureminuteseconde (ex : 200361015159)
  28.        $tmp=getdate();
  29.        $jour=$tmp['mday'];
  30.        $mois=$tmp['mon'];
  31.        $annee=$tmp['year'];
  32.        $h=$tmp['hours'];
  33.        $m=$tmp['minutes'];
  34.        $s=$tmp['seconds'];
  35.        $tout="$annee$mois$jour$h$m$s";
  36.        //on calcule le nombre de lettres avant le premier point
  37.        $res = strpos("$nomFichier","." );
  38.        //on extrait le nombre de lettre avant le point
  39.        $type2=left($nomFichier,$res);           <--------------------------------------------------------------- ICI ERREUR
  40.        //sauvegarde du fichier uploadé
  41.        $savefile=$type2.".".$tout.".".$extension;
  42.        // Ensuite, on copie le fichier uploadé ou bon nous semble.
  43.          $uploadOk = move_uploaded_file($DESTINATION_FOLDER, $savefile);
  44.          if($uploadOk){
  45.                         echo "L'upload a réussi !<br><br>";
  46.                                         echo "Nom du Fichier : $savefile<br>";
  47.                                         echo "Taille du Fichier : $poidsFichierK Ko<br>";
  48.                         echo "URL du Fichier : /upload/$savefile<br><br>";
  49.          echo "Aperçu:<br><br>";
  50.          switch ($extension) { //Tu fais écrire du html par le php
  51.                case ".jpeg": echo "<IMG SRC='$savefile'>";break;
  52.                                         case ".bmp": echo "<IMG SRC='$savefile'>";break;
  53.          case ".gif": echo "<IMG SRC='$savefile'>";break;
  54.          case ".png": echo "<IMG SRC='$savefile'>";break;
  55.          case ".jpg": echo "<IMG SRC='$savefile'>";break;
  56.          case ".rar": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  57.          case ".ace": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  58.          case ".zip": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  59.          case ".mp3": echo "<IMG SRC='./_im/file/son.gif'><bgsound src='$savefile'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  60.          case ".wav": echo "<IMG SRC='./_im/file/son.gif'><bgsound src='$savefile'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  61.             default: echo "<IMG SRC='./_im/file/inconnu.gif'>"; }
  62.          echo "<br><br>";
  63.                                         echo(createReturnLink());
  64.    }else{
  65.     echo("L'upload a échoué !<br><br>" );
  66.     echo(createReturnLink());
  67.    }
  68.   }else{
  69.    echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>" );
  70.    echo (createReturnLink()."<br>" );
  71.   }
  72.  }else{
  73.   $tailleKo = $MAX_SIZE / 1000;
  74.   echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>" );
  75.   echo (createReturnLink()."<br>" );
  76.  }
  77. }else{
  78.  echo("Le fichier choisi est invalide !<br>" );
  79.  echo (createReturnLink()."<br>" );
  80. }
  81. }else{
  82. echo("Vous n'avez pas choisi de fichier !<br>" );
  83. echo (createReturnLink()."<br>" );
  84. }
  85. ?>


 
Résultat : error line 77 presenté ligne 41 dans ce post
 
Fatal error: Call to undefined function: left() in /var/www/free.fr/4/5/dams57000/upload/uploader.php on line 77
 
Fonction left() <----- connait pas  [:owaz] (à part la bière leffe)
 
Une petite idée ??

Message cité 2 fois
Message édité par Usernet le 24-04-2006 à 17:31:14
Reply

Marsh Posté le 24-04-2006 à 21:23:36    

Usernet a écrit :


Fatal error: Call to undefined function: left() in /var/www/free.fr/4/5/dams57000/upload/uploader.php on line 77
 
Fonction left() <----- connait pas  [:owaz] (à part la bière leffe)
 
Une petite idée ??


 
La fonction left() n'est pas définie (ce n'est pas une fonction du langage, et tu ne la définis pas non plus), y'a pas grand chose d'autre à dire...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-04-2006 à 21:28:43    

Usernet a écrit :


Une petite idée ??


 
Oui, j'ai une idée : c'est pas toi qui a fait ce script ?

Reply

Marsh Posté le 24-04-2006 à 21:28:43   

Reply

Marsh Posté le 24-04-2006 à 23:35:07    

heu je crois que je les deja dit au 1er post :
 

Usernet a écrit :


Ce qui me donne ce genre de script (trouvé sur un site):


 
Et comme je suis pas une star (deja dit dans le post 5) je demande votre avis et surtout votre aide.

Reply

Marsh Posté le 24-04-2006 à 23:45:04    

remplace  

Code :
  1. $type2=left($nomFichier,$res);


par

Code :
  1. $type2=substr ( $nomFichier, 0,$res );


Le commentaire dit que left récupère les $res premières lettres de $nomFichier.
 
Bon, sinon, ton script, il a l'air pas terrible terrible en passant, genre le paté là :  

Code :
  1. switch ($extension) { //Tu fais écrire du html par le php
  2.                                         case ".jpeg": echo "<IMG SRC='$savefile'>";break;
  3.                                        case ".bmp": echo "<IMG SRC='$savefile'>";break;
  4.                                         case ".gif": echo "<IMG SRC='$savefile'>";break;
  5.                                         case ".png": echo "<IMG SRC='$savefile'>";break;
  6.                                         case ".jpg": echo "<IMG SRC='$savefile'>";break;
  7.                                         case ".rar": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  8.                                         case ".ace": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  9.                                         case ".zip": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  10.                                         case ".mp3": echo "<IMG SRC='./_im/file/son.gif'>
  11. <bgsound src='$savefile'>
  12. <br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  13.                                         case ".wav": echo "<IMG SRC='./_im/file/son.gif'>
  14. <bgsound src='$savefile'>
  15. <br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  16.                                         default: echo "<IMG SRC='./_im/file/inconnu.gif'>"; }


 
il serait plus simple comme ça :  

Code :
  1. switch ($extension) {
  2. case ".jpeg":
  3. case ".bmp":
  4. case ".gif":
  5. case ".png":
  6. case ".jpg": echo "<IMG SRC='$savefile'>";break;
  7. case ".rar":
  8. case ".ace":
  9. case ".zip": echo "<IMG SRC='./_im/file/archive.gif'>";break;
  10. case ".mp3":  case ".wav":
  11. echo "<IMG SRC='./_im/file/son.gif'><bgsound src='$savefile'>
  12. <br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break;
  13. default: echo "<IMG SRC='./_im/file/inconnu.gif'>"; }


Message édité par zapan666 le 24-04-2006 à 23:46:23

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 26-04-2006 à 18:19:11    

Code :
  1. $type2=substr ( $nomFichier, 0,$res );


 
Marche po  :fou:  
 
une idée ?

Reply

Sujets relatifs:

Leave a Replay

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