14. september 2010 - 20:10Der er
7 kommentarer og 1 løsning
Vis billede fra DB
Hej
Jeg vil gerne at folk kan uploade et billede til min hjemmeside. For at holde styr på billederne og gemme dem tænker jeg at jeg enten kan gemme billederne i my MySQL DB eller jeg kan gemme dem på filserveren og så i en database holde styr på billederne, med navn, sti, filnavn, osv.
Vil I foreslå den sidste løsning? Gemme billede på filserver og holder styr på sti og filnavn i DB?
En anden ting er at lige nu når jeg skal læse billeder ud af DB, så gør jeg sådan <img scr="hent_fil.php=id=55">. Så kan I nok regne I hvad jeg gør. Jeg vil gerne have et rigtigt filnavn til at stå der istedet for hent_fil.php, kan bare ikke gennemskue konsekvenserne. Det skal sættes op på en måde så man ikke bare kan indtaste et filnavn og så andre billeder.
Jeg kunne også bare gemme billederne på filserver som en random-20-strengs-navn og så udlæse den. Lidt som jeg tror facebook gør. Jeg prøvede at downloade et billeder og filnavnet ser sådan ud "29406_556571944_6411_q.jpg".
Det er lidt kompliceret at beskrive hvad jeg ønsker, men håber I kan gennemskue det ud fra dette.
Hvis det er din egen server (og billederne ikke er enormt store), saa ville jeg putte billederne i databasen. Langt nemmere at administrere. Og performance problemet er en ammestue historie.
Men er det et web hotel, saa check pladsen. Hvis du har 1 GB fil plads og 5 MB database plads, saa var det nok en god ide med filer paa disk.
hent_fil.php boer checke om brugere er logget ind og har adgang til det paagaeldende billede - det vil loese 90% af problemerne.
Det kan du saa supplere med et navn som er svaert at gaette.
Men vi enig om at uden for meget DB-plads, så er måden at gemme det på filserver, og bruge databasen til at holde styr på hvem må få vist hvad ikke sandt?
RewriteEngine On RewriteBase / RewriteRule /hentfil/(.+)$ /hent_fil.php?filnavn=$1
Den kaldes så f.eks. med <img src="/hentfil/dit_billede.jpg"> hent_fil.php skal checke at filen eksisterer, brugeren har rettigheder samt at sende korrekt MIME-header.
Headeren til filnavnet ser ud til at virke perfekt. Så er det for mig lidt ligegyldigt hvad der står i koden.
coderdk, det lyder egentlig også meget smart. I koden ville det se lidt pænere ud, men når man med headeren kan udskrive et rigtigt filnavn, så tror jeg det er nok for mig.
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.