11. september 2006 - 17:32Der er
16 kommentarer og 1 løsning
Kun tal
Hej i eksperter (: .. Jeg har et community og hver bruger har et galleri.. Og når brugeren oploader et billede bliver billedets navn lavet om til : $uniqueFile = $_SESSION['id'] . "_" . md5(uniqid(rand(), true)); Dette giver resultat i over 32 tegns filnavn..Jeg vil gerne havde lavet det om til, sån at det kun er tal og kun 7 tegn. Hvordan kan det gøres ?
Den skitserede løsning er nok så unik som man kan forvente det.
Men man kan garentere at det er unikt ved at gemme de genererede navne i en database, og så trække en ny $uniqueFile hvis man trækker noget der allerede har været brugt tidligere.
En anden måde er, helt at droppe $uniqueFile efter den ovesntående opskrift, og så trække filnavnet via en database hvor at du anvender et auto_increment felt.
- Du opretter en tabel til formålet. - Sætter id-feltet til at være auto_increment. - For hver nyt billede indsætter du en række i tabellen. - Dermed bliver id-feltet automatisk talt en op (ergo, det er unikt). - Umiddelbart efter din INSERT kalder du mysql_insert_id() til at få fat i det netop "udtrukne" id:
OKay..Jeg forstår godt hvad du mener..Men kan man så godt slette det man har indsættet efter at billedet er gemt?? Sån at man undgår at havde 1000 rækker i en tabel?
Men hvorfor er det så slemt at have 1000 rækker i en tabel? Du kunne jo passende bruge tabellen til samtdigt at indeholde nyttige oplysninger så som hvem der lagde billedet op, hvornår, samt hvis der er en lille tekst til billedet.
Når folk uploader en fil/et billedet kan du give denne et midlertidigt navn.
Dernæst indsætter du værdierne i din tabel, ser hvilket auto_increment nummer den indsatte række resulterede i, og så omdøber du filen fra det midlertidige navn til et navn som stemmer med det nummer der blev trukket.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.