Hej hej igen :P
Jag har läst lite om att ladda upp bilder med php och mysql. Överallt läser jag om att det är dåligt att spara bildern i en databas och att man istället ska ladda upp det till server.
Nu är det så att jag vill kunna ladda upp en bild tillsammans med text, typ namn och ålder. Då kan man ju lätt skicka upp bilden via ett uppladdningscript och samtidigt skicka namn och ålder till en databas.
Men hur gör jag för att kunna koppla bilden som jag just skickade upp till databasen? Så att jag med bara ett id kan hämta bild, namn och ålder...
Hoppas någon kan hjälpa mig att koppla bilden... har försökt lite själv, men jag fixar det inte.
Där url är sökvägen till din bild. Inte så utförligt förklarat men jag hoppas att du förstår vad jag menar? Sedan skulle du enkelt kunna hämta en bild med hjälp av ett id. Pseudo: SELECT name, age, url FROM images WHERE id = 7
Nu vet jag inte hur ditt script ser ut och hur det exakt fungerar men det ska inte vara allt för svårt att få fram namnet på filen och sökvägen till mappen där den laddas upp. Jag antar att du har ett förbestämt ställe dit filen laddas upp? Där har du sökvägen. Namnet på bilden borde du kunna få tag på med hjälp av uppladdningsformuläret, dvs när det har skickats.
Sökvägen = sökvägen som finns i uploadscriptet + namnet på bilden
Att sedan få in detta i tabellen borde inte heller vara ett problem. Du får helt enkelt göra en insert direkt efter att filen har laddats upp.
Tillägg: Sökvägen måste vara unik, vilket kan vara ett problem om du laddar upp en bild med ett filnamn som redan är använt. Jag skulle nog försöka komma runt detta med att antingen med hjälp av php byta namn på filen automatisk genom att exempelvis namnge filen med sitt id eller namn-på-filen + id, dvs minbild1 osv.
Om du har alla bilder på samma ställe så kan det vara onödig att spara hela sökvägen till varje bild, det blir väldigt rendundant om du har många filer. En annan lösning kan vara att föredra, exempelivs spara du endast namnet på bilden i databasen och så här du sökvägen till detta bildgalleri (eller vad det nu är) i en config-fil.
Ett annat alternativ är att ändra dina tabeller lite...
Table images
- id
- name
- age
- image_name //min_sem01.jpg
- ic_id // foreign key, exempelvis 1
Table image_categories
- id // exempelvis 1
- name // exempelvis semesterbilder
- url // exempelvis [url]http://www.minserver.com/images/sembilder/[/url]
Med denna lösning räcker det att spara namnet på bilden i tabellen images och ha en foreign key till tabellen image categories, där du kan få fram sökvägen till mappen som bilden ligger i.
Om du inte planerar att modifiera/ändra/hantera bilderna manuellt .. så kan du skapa nya namn på bilderna med ex uniqid() . Då får varje bild ett unikt namn och du behöver inte fundera på om bilden redan finns eller ej.
Du sparar alla bilderna i en mapp och i databasen sparar du sedan enbart filnamnet..
Hej hej!
Jo direkt efter jag laddat upp bilden får jag sökvägen;
Destination: https://www.nummersju.net/klantest/members/bilder/bildnamn.jpg
men hur får jag denna sökväg att komma med in i databasen? Eftersom sökvägen inte skapas förrän jag har skickat upp bilden och det är ju då jag skickar till databasen... Alltså kommer sökvägen inte med ;((