Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 908
Skulle gjerne visst hvordan man kunne laste opp et bilde i en MySql database, og hvordan å printe det ut igjen

Hvilke instillinger må man bruker i databasem(Type, attributter, NULL...osv.), går det an å bruker "INSERT INTO..." eventuelt selve PHPMyadmin(Vil bare bildene inn i databasen, ikke en filopplaster) og hvordan man kan printe de ut... har googlet og søkt på forumet, men finner ikke det jeg vil ha ka noen hjelpe meg?
Trigonoceps occipita
vidarlo's Avatar
Donor
Du bruker datatypen blob, som er binærsafe.

Så må du tenke ut en måte å fjerne potensielt farlige tegn fra sql-koden/escape dei, uten å hærpe billeddata. Å stappe et bilde gjennom mysql_real_escape vil t.d tryne solid tipper eg - fordi den vil escape i hytt og pine.

Når du har gjort det så er det bare å dra en "INSERT INTO `foo` ..." med binærdata. Vanlig select for å hente det ut igjen.

Enklaste er å gjere bildet om til base64-enkoda string, som du er sikker på ikkje inneheld skadlige tegn, samtidig som det er robust. Då er det bare å dekode det når du drar det ut igjen. Bakdelen med det er åpenbart en del overhead, så du bruker meir plass.

Men kvifor vil du det? Bilde i database er *dårlig* idè. DB har garantert meir overhead på lagringa enn du har på disk, og webserveren er raskere på å hente bilde fra disk enn php og mySQL er på å hente bildet fra database også gi det viare.

Så alt i alt: ha bilda på disk og metainformasjon om bilda i DB.
marfo's Avatar
Trådstarter
Grunnen til at jeg vil ha det i en DB er at jeg vil kunne hente det frem når noen søker etter det på siden min... skjønner? går det an å bruker PHPmyadmin til å legge inn bildene i databasen?
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av marfo
Grunnen til at jeg vil ha det i en DB er at jeg vil kunne hente det frem når noen søker etter det på siden min... skjønner? går det an å bruker PHPmyadmin til å legge inn bildene i databasen?
Vis hele sitatet...
Tja, ved base64-encoding, ja.

Men kan du ikkje oppnå akkurat det samme med å ha metainfo (filnavn, path, dato, størrelse o.l.) i database, og ha bildet liggande som fil? Det er raskere, fører til mindre ressursbruk, er (IMHO) meir elegant løsning. Du får akkurat samme funksjonalitet som om du hadde bildet i database.
marfo's Avatar
Trådstarter
Ikke når jeg vil knytte bilde opp mot en kommentar som ligger i en DB... derfor vil jeg ha bildet i databasen.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av marfo
Ikke når jeg vil knytte bilde opp mot en kommentar som ligger i en DB... derfor vil jeg ha bildet i databasen.
Vis hele sitatet...
Neivel? Lagre bildet som fil, og lagre path til fila i db. Funker heilt fint, brukarane vil ikkje merke forskjell, og det er meir elegant. Mao, funksjonaliteten blir kliss lik. Det blir til og med færre linjer PHP for deg å skrive, og sida vil bli vist raskare.

Ta en kik på korleis det er gjort i AIDS. Der lagrer vi bilda til disk, med et unikt filnavn generert utfra div. paramtere.

Deretter legger vi inn info slik som tidspunkt, filnavn, mime-type o.l. i DB.

Når folk så velger å sjå et bilde, t.d nff.bitsex.net/1045, så sjekker php-scriptet databasen og finner rada med ID 1045, og leser bildet fra disk, ut frå info som ligg i DB. Enklare, og mindre overhead.

Men som sagt, mekk et felt av typen text, base64-encode bildet, og stapp det inn i db om du absoulutt vil.

Edit: dersom det er snakk om et statisk bilde en plass på sida, så laster du opp bildet og bruker html på vanlig vis. Ikkje poeng i å dra inn anna shizzle i statiske ting.
Sist endret av vidarlo; 2. juli 2007 kl. 22:07.
marfo's Avatar
Trådstarter
Ah... skjønner poenget... takker!

Bare 1. spørsmål: når jeg skal printe ut bildet, hvordan henter jeg fremm bildet med pathen til bildet?
marfo's Avatar
Trådstarter
glemm det... fikk det til... bare enkel html <img src='$...'> :P

takker for all hjelp