Fichiers multiples et dossiers ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

dady75
Nouveau WRInaute
 
Messages: 3
Inscription: Ven Mai 20, 2005 17:22

Fichiers multiples et dossiers ?

Message le Ven Mai 20, 2005 17:24

Bonjour,

J'ai sur mon site un système d'ajout photos, les membres ajoutent des photos sur leur profil.

J'utilise le système le plus simple (je pense), j'ai une table "photos" dans laquelle le champ "id" correspond au nom de la photo sur le serveur. Les photos sont toutes stockées dans le même répertoire "photos/".

Depuis peu, la barre des 5000 photos à été passée et des problèmes surviennent...

Certaines photos sont mal générées. En effet des grandes zones grises apparaissent sur une partie plus ou moins grande des dites photos.

En réfléchissant un peu, j'ai pensé que cela venait certainement du grand nombre de photos (+ de 5000) dans le même répertoire.

J'en viens à ma question.
J'aimerais pouvoir stocker les photos dans différents répertoires avec un système logique, de façon qu'il soit possible, à partir de l'identifiant de la photo (et uniquement l'identifiant) de retrouver dans quel répertoire elle se trouve.

J'ai regardé comment fesait d'autre site et soit le système tiens compte du pseudo pour l'organisation du répertoire.

Exemple :

Un membre à un pseudo : je_suis_un_pseudo

La photo est stockée dans : photos/j/e/je_suis_un_pseudo/identifiant.jpg

Ce système ne me convient pas car il faut tenir compte du pseudo.

J'ai vu un autre système (sur le site d'une grande radio pour les jeunes) et eux font de cette manière :

La photo a par exemple cet identifiant : 14551234.jpg

Elle se trouvera dans : photos/4/3/2/4/14551234.jpg

Leur système stocke l'image en créant des répertoires correspondant aux 4 derniers chiffres de l'identifiant de la photo et ceci en lisant de la droite vers la gauche.

Cette deuxième méthode me parait efficasse mais je ne la comprends pas complétement, par exemple comment font-ils lorsque l'indentifiant ne se compose que de 3 chiffres.

J'aimerais donc savoir si vous avez déjà était confronté au problème et/ou avez-vous des solutions ?

Merci à vous.


benjiiim
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: Ven Jan 09, 2004 22:54

Message le Ven Mai 20, 2005 19:53

Salut,

Cette méthode me semble bonne en effet.Pour le problème du nombre de chiffre, il suffit de faire quelques tests et le tours est joué, si l'id a 3 chiffres, tu le met dans un repertoire que tu appeleras 10 au dernier niveau par exemple. Si il en a 2, tu le met dans le repertoire 10 au 3e et au 4e niveau... etc

dady75
Nouveau WRInaute
 
Messages: 3
Inscription: Ven Mai 20, 2005 17:22

Message le Ven Mai 20, 2005 23:38

Un petite erreur, la photo dans le second exemple se trouvera dans le répertoire : photos/4/3/2/1/14551234.jpg

benjiiim> Merci pour ton avis, mais j'avoue ne pas comprendre ton explication :-), pourrais-tu me réexpliquer comment fais-tu si l'identifiant de la photo est, par exemple : 12.jpg ou 154.jpg.


benjiiim
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: Ven Jan 09, 2004 22:54

Message le Sam Mai 21, 2005 0:23

Bonsoir,

Je n'ai jamais développer un tel système de photo mais c'est juste une petite astuce qui t'aideras peut être, je vais essayer d'être plus clair.

Prenons un exemple un peu plus simple où tu souhaites 3 niveaux de dossier (contrairement aux 4 que tu suggerais).

Si l'id est 321 : Tu stockes dans l'arborescence des dossier suivant : 1>2>3

Ma suggestion consiste à remplacer le chiffre "manquant" dans l'identifiant par n'importe quel nom de dossier. Par exemple 10 ou n'importe quoi d'autre.

Donc si l'id est 12 : tu stockes dans l'arborescence : 2>1>10
Pour cela tu fais un test pour savoir si l'id est compris entre 99 et 10

De même si l'id est 3 : tu stockes dans l'arborescence : 3>10>10
Dans ce cas, tu fais le test pour detecter un id compris entre 9 et 0

J'éspère avoir été plus clair et que cette solution te permettras de resoudre ce problème.

N'hésite pas a me redemander...

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Sam Mai 21, 2005 1:39

Une solution est de générer des identifiant de longueur fixe. Exemples:
Code: Tout sélectionner
md5(rand()*time()) // 32 caractères
sha1(rand()*time()) // 40 caractères

dady75
Nouveau WRInaute
 
Messages: 3
Inscription: Ven Mai 20, 2005 17:22

Message le Mar Mai 24, 2005 19:46

benjiiim> Merci pour tes explications, je vais potasser sur cette méthode.

shrom> J'avoue ne pas comprendre le rapport. En créant un identifiant unique, chaque photo sera dans un répertoire unique donc par exemple 10000 photos, 10000 répertoires. C'est cela que tu voulais dire ou je n'ai pas compris ?


benjiiim
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: Ven Jan 09, 2004 22:54

Message le Mar Mai 24, 2005 20:45

Nan, ce qu'il voulait dire (si je peus me permettre shrom), c'est de créer des identifiants de taille unique, c'est à dire au lieu d'avoir un id 121, tu aurais l'id 0121, comme ca pas de problème de taille, ils auront tous 4 chiffres.
Personnelement je ne suis pas pour gérer les identifiants à la main, les numéros auto des bases de données sont parfaites pour cela. De plus, cela implique une modification des ids déjà existants dans ton application, ce qui peut poser des problèmes (et surtout du travail) avec beaucoup de relations dans ta table.

Bon dev !
++


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités