Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3197 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [AIDE] - Script Upload + modif nom de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AIDE] - Script Upload + modif nom de fichier

n°1351905
Usernet
Since 2004
Posté le 22-04-2006 à 17:55:11  profilanswer
 

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
mood
Publicité
Posté le 22-04-2006 à 17:55:11  profilanswer
 

n°1351917
sielfried
Posté le 22-04-2006 à 18:30:14  profilanswer
 

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
n°1351940
Usernet
Since 2004
Posté le 22-04-2006 à 19:31:49  profilanswer
 

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

n°1351968
sielfried
Posté le 22-04-2006 à 20:24:37  profilanswer
 

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
n°1352002
Usernet
Since 2004
Posté le 22-04-2006 à 21:55:52  profilanswer
 

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

n°1352273
Usernet
Since 2004
Posté le 23-04-2006 à 17:46:39  profilanswer
 

up

n°1352284
gooopil
pfiew
Posté le 23-04-2006 à 18:21:34  profilanswer
 

$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
n°1352907
Usernet
Since 2004
Posté le 24-04-2006 à 17:27:26  profilanswer
 

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
n°1353112
sielfried
Posté le 24-04-2006 à 21:23:36  profilanswer
 

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
n°1353118
gooopil
pfiew
Posté le 24-04-2006 à 21:28:43  profilanswer
 

Usernet a écrit :


Une petite idée ??


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

mood
Publicité
Posté le 24-04-2006 à 21:28:43  profilanswer
 

n°1353213
Usernet
Since 2004
Posté le 24-04-2006 à 23:35:07  profilanswer
 

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.

n°1353225
zapan666
Tout est relatif
Posté le 24-04-2006 à 23:45:04  profilanswer
 

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 !
n°1354610
Usernet
Since 2004
Posté le 26-04-2006 à 18:19:11  profilanswer
 

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


 
Marche po  :fou:  
 
une idée ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [AIDE] - Script Upload + modif nom de fichier

 

Sujets relatifs
javascript et fichier texte en localbesoin aide pour remplacer fichier php par table sql?
[Aide] Code source toolbar ....[PHP]Aide pour formulaire
Aide : Quel est plus simple langague de programmation .[Batch] script executé par serveur pour systeme de backup
scriptchanger un script
Fermeture fichier 
Plus de sujets relatifs à : [AIDE] - Script Upload + modif nom de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR