Page 1 sur 1

Lister des fichier en fonction de leur nom

Posté : 08 avr. 2005, 14:00
par hormia
Bonjour,

J'ai fait un système de compte utilisateur qui permet à ces utilisateurs d'uploader des fichier .gif .GIF .jpg et .JPG en ligne.

Le fichier uplader prend pour nom l'identifiant de l'utilisateur dan la base de donnée, suivie de l'extention du fichier.

Par exemple l'utilisateur 63 upload le fichier maphoto.jpg. Le fichier sera renommé en 63.jpg, et dans la base de donnée je stocke que l'image de l'utilisateur 63 est en .jpg.

Ainsi pour afficher l'image je fait $data["id_user"].'.'.$data["photo"] : identifiant suivit d'un point puis de l'extention.

Mon problème est qui si un utilisateur uploade d'abord un .jpg et ensui il change est mets un .gif. Tout fonctionnera correctement puisque dans ma base de donnée je saurais que c'est un .gif. Mais sur mon serveur il y aura deux image : 63.jpg et 63.gif alors que seul 63.gif sera utilisé.

J'ai trouvé que pour effacer un fichier il faut utiliser unlink().

Ce que je cherche à faire est :
faire la liste de tous les fichier du répertoire photo/ qui commence par l'identifiant (63 par ex) et de tous les effacer suf celui qui a l'extention connue dans la base de donnée.

Comment faire la liste des fichiers commençant par 63 ?

Je pense qu'en suite je serai capable de récupérer l'extention, en prenant les 3 dernier caractères du nom du fichier.

(si j'ai expliqué tout le système c'est qu'il y a peut etre une super solution qui permet de faire la même chose sans avoir à se confronter à ce problème, et dans ce cas je veux bien la connaitre)

Merci bien de m'avoir lu !

Posté : 09 avr. 2005, 18:43
par Gentoo Warrior
Moi je supprimerai tout les fichiers de l'utilisateur avant qu'il n'en upload un autre comme ceci.

exemple avec utilisateur 63 :
$files = glob("photo/63*.*");
foreach ($files as $filename) 
{
   if(file_exists($filename)) unlink($filename);
}
Le problème avec ce système, c'est que si un jour tu à un membre qui commence par 630, il sera effacé aussi. :roll:

Posté : 09 avr. 2005, 21:58
par Xenon_54
Le mieux est de supprimer la photo précédente lors de la mise à jour. Donc il n'en résultera que d'une suppression à la fois, supprimant ainsi le besoin d'une boucle.

:)

Posté : 11 avr. 2005, 10:00
par hormia
C'est vrai que c'est mieux comme celà.
Pourquoi faire compliqué quand on peut faire simple !!??

Merci à vous deux. :wink: