Mettre un nom aléatoire à un fichier uploadé.

Mettre un nom aléatoire à un fichier uploadé. - PHP - Programmation

Marsh Posté le 02-02-2005 à 12:48:42    

Bonjour, j'ai crée mon site d'upload récemment, (http://www.jeep.heb4you.com/). Cependant, lorsque on upload une image nommé image.jpg, il efface l'image du même nom qui était présente.
En fait, je voudrais mettre le script pour qu'il trouve un nom compliqué et ainsi ne puisse pas effacer l'ancienne image.
 
Désolé, je m'exprime mal, mais je suis fatigué  :D  
 
Merci d'avance.  :hello:

Reply

Marsh Posté le 02-02-2005 à 12:48:42   

Reply

Marsh Posté le 02-02-2005 à 12:53:44    

je vois 3 solutions :
- soit tu ajoutes un compteur, genre tu renommes ton fichier en image1.jpg
- soit tu génère un identifiant unique, par exemple md5 (attention aux collisions)
- soit tu gère une table des tes fichiers avec identifiant unique dans une bd (par exemple avec une clé primaire en auto_increment)

Reply

Marsh Posté le 02-02-2005 à 13:01:46    

Est-il possible d'avoir des scripts ?  :bounce:

Reply

Marsh Posté le 02-02-2005 à 13:54:42    

Jeep_ a écrit :

Est-il possible d'avoir des scripts ?  :bounce:


j'ai cru lire :

Règles du forum Programmation  a écrit :

[0C] On ne fait pas le boulot à votre place.



donc essaye d'implémenter une des solutions et si ça bug repasse nous voir  ;)  

Reply

Marsh Posté le 02-02-2005 à 14:59:19    

j'ai déjà lu des posts ou les gens utilise un timestamps pour nommer les fihcier (image ou autre) uploadé, je pense que c'est une assez bonne idée pour éviter les doublons...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 02-02-2005 à 15:11:44    

Le meilleur moyen est en effet d'utiliser les timstamp ... aucun risque d'avoir 2 fois le même.
 
++


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 02-02-2005 à 16:06:43    

Dj YeLL a écrit :

Le meilleur moyen est en effet d'utiliser les timstamp ... aucun risque d'avoir 2 fois le même.
++


[mode_chieur]et si 2 utilisateurs upload un fichier à la même seconde ? rare mais possible.[/mode_chieur]  ;)  

Reply

Marsh Posté le 02-02-2005 à 16:13:58    

soju a écrit :

[mode_chieur]et si 2 utilisateurs upload un fichier à la même seconde ? rare mais possible.[/mode_chieur]  ;)


 
Ajoute l'identifiant de session  :jap:

Reply

Marsh Posté le 02-02-2005 à 16:15:41    

no_code a écrit :

Ajoute l'identifiant de session  :jap:


ça + le timestamp, ça va faire de jolis noms de fichiers, ça...[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-02-2005 à 16:17:08    

soju a écrit :

[mode_chieur]et si 2 utilisateurs upload un fichier à la même seconde ? rare mais possible.[/mode_chieur]  ;)


Tu met un timestamp avec une précision à la nanoseconde prêt, aucune chance de timestamp pareil du coup :)

Reply

Marsh Posté le 02-02-2005 à 16:17:08   

Reply

Marsh Posté le 02-02-2005 à 16:40:57    

md5(microtime())

Reply

Marsh Posté le 02-02-2005 à 16:46:21    

soju a écrit :

[mode_chieur]et si 2 utilisateurs upload un fichier à la même seconde ? rare mais possible.[/mode_chieur]  ;)


 
Bah dans ce cas il utilise un microtime() et c'est bon ... ça serait deja bcp plus rare hein :D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 02-02-2005 à 16:46:59    

Vache, supra-grillaid !
 
/ME va apprendre à utiliser la touche F5 de son clavier hein :/


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 02-02-2005 à 16:54:53    

Dj YeLL a écrit :

/ME va apprendre à utiliser la touche F5 de son clavier hein :/


si c'est trop dur au clavier, clic droit --> menu contextuel --> "actualiser" :P


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 02-02-2005 à 17:03:59    

Dj YeLL a écrit :

Vache, supra-grillaid !
 
/ME va apprendre à utiliser la touche F5 de son clavier hein :/


 :p

Reply

Marsh Posté le 02-02-2005 à 17:16:55    

Lol, bon bah merci pour vos réponses  :jap:

Reply

Marsh Posté le 02-02-2005 à 17:19:41    

ratibus> Oué mais si tu fais un md5(microtime()) tu retombes sur le problème de collisions ! Na ! :na:


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 02-02-2005 à 17:21:29    

Dj YeLL a écrit :

ratibus> Oué mais si tu fais un md5(microtime()) tu retombes sur le problème de collisions ! Na ! :na:


Euh le md5 c'est sur 32bits hein, t'as de la marge...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-02-2005 à 17:24:02    

Je sais bien, mais si on est parti au depart sur du timestamp c'était pour eviter le problème de collisions MD5 :lol: C'est pour cette unique raison que je reviens là dessus :p
 
:hello:


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 02-02-2005 à 18:10:47    

sha1(microtime())  :p

Reply

Marsh Posté le 18-02-2005 à 14:40:25    

Voilà, j'ai réalisé le code :
 

Citation :

if (file_exists("$absolute_path/$nom_entier" )) doublon();


 

Citation :

  function doublon()
{static $act=0;
global $absolute_path,$nom_cop;
$act++;
if (file_exists($absolute_path."/".$nom_cop[0]."[".$act."].".$nom_cop[1])) doublon();
else $nom_cop[0] .= "[".$act."]";
}


 
Pouvez-vous me confirmer si je n'ai pas fait de fautes ?
Et je n'ai pas trop d'idées où le placer  :( .
Merci d'avance.

Reply

Marsh Posté le 18-02-2005 à 22:22:00    

Up :(.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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