Afbeeldingen opslaan
Ik ben met een reserveringssysteem bezig en nu heb je allemaal verschillende bedrijven die kamers kunnen aanmaken voor hun eigen bedrijf.
Voor iedere kamer kunnen foto's worden geupload. Wat is nu de beste manier om dit op te slaan?
Mapje aanmaken met chmod777 en daar alles in opslaan? Het nadeel hiervan is, is dat alle foto's in één map staan. Dat lijkt me niet erg handig.
Zijn hier andere opties voor om dit te doen? Hoe doet Hyves dit bijvoorbeeld en is dat handig om na te maken of is een ander systeem aan te raden?
De foto's kun je prima allemaal in 1 map opslaan. Sla vervolgens de bestandsnaam van de foto op in de database, gekoppeld aan het bijbehorende bedrijf.
Zijn mapjes per bedrijf ook een goed idee om het toch wat iets overzichtelijk te houden?
Dat kan ook ja, ik zou wel een zelf gegenereerde id ofzo doen dan, want soms hebben bedrijven tekens in hun namen staan die of gewoon niet in een bestandsnaam kan of die je er liever niet in wilt hebben.
Ik zou sowieso de naam aanpassen of wat aan de naam toevoegen, zodat je niet in de knoei komt met bestanden die dezelfde naam hebben.
Wat ik deed bij mijn reserveringssysteem is zodra een bedrijf een kamer "aanmaakt", dan ook direct een mapje aanmaken met de ID die de kamer heeft in de database. Dan alle foto;s die er voor die kamer worden aangemaakt kregen de standaard benaming image_***.jpg, en dan liet ik deze automatisch doornummeren. Dus image_001.jpg, image_002.jpg. Dan krijg je een makkelijk te overzien en zo kan je ook bijvoorbeeld als een kamer verwijderd wordt, het bijbehorende mapje met foto's verwijderen (of op non actief zetten), zodat het je server een beetje schoon houdt :-)!
Zo'n naam als image_*.jpg zou ik niet doen, ik zou écht unieke namen doen. Stel er gaat wat mis, of je moet de bestanden verhuizen, dan heb je allemaal bestanden met dezelfde naam.
Een groot aantal bestanden heeft meerdere nadelen:
- Op de shell kan je bepaalde commando's niet meer goed uitvoeren (argument list to long)
- Met FTP een lijst van bestanden inladen duurt enorm lang
- Zoeken door een map is ook trager dan mappen met 2 of 3 bestanden
daarbij heb je aan alleen id genoeg, verder zou ik er geen namen in doen (is niet nodig en levert alleen maar problemen op)
Karl Karl op 01/06/2010 15:51:12:
Zo'n naam als image_*.jpg zou ik niet doen, ik zou écht unieke namen doen. Stel er gaat wat mis, of je moet de bestanden verhuizen, dan heb je allemaal bestanden met dezelfde naam.
Maar als je daarin de goede mappenstructuur hebt maakt dat toch niet uit: voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-Images
--hotel_x
--- kamer_01
---- image_01.jpg
---- image_02.jpg
--- kamer_02
----image_01.jpg
----image_02.jpg
--hotel_y
---kamer_vissen
----image_01.jpg
---kamer_suite_abraham
---- image_01.jpg
---- image_02.jpg
--hotel_x
--- kamer_01
---- image_01.jpg
---- image_02.jpg
--- kamer_02
----image_01.jpg
----image_02.jpg
--hotel_y
---kamer_vissen
----image_01.jpg
---kamer_suite_abraham
---- image_01.jpg
---- image_02.jpg
Dan zijn de namen van de kamers toch leidend, en niet die van de image.
Ik vond het persoonlijk erg irritant dat je dan images in je database hebt staan omdat
de gebruiker spaties in de bestandsnaam heeft die dan in je database staan als:
plaatje%20van%20hotel%20001.jpg, en dan kan je natuurlijk die spaties wel weer trimmen
maar dan krijg je ook niet echt handige namen: plaatjevanhotel0001.jpg bijvoorbeeld.
Daarom heb ik voor die opzet gekozen.
Gewijzigd op 01/06/2010 16:01:14 door Justin S
zelf deed ik t nog anders.. ik had de namen van de afbeeldingen gecodeerd met md5. De mappen maakte ik aan aan de hand van de eerste letters van de bestandsnaam. Dan had ik de volgende structuur:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
images
|- a
| |-a
| | |- aadfg983q4raf2329083qfw4g34.jpg
| |-b
| |- abasfwe43qfj3409pf9fqp8j93f.jpg
| |- ab23423awgwe4j09a43gpoj4g23.jpg
|- f
|-a
|- faewoiqtjwpoefwaoejfpoiewjg.jpg
|- a
| |-a
| | |- aadfg983q4raf2329083qfw4g34.jpg
| |-b
| |- abasfwe43qfj3409pf9fqp8j93f.jpg
| |- ab23423awgwe4j09a43gpoj4g23.jpg
|- f
|-a
|- faewoiqtjwpoefwaoejfpoiewjg.jpg
Zo krijg je nooit meer dan 16 mappen (md5 gaat niet verder dan de f). Een afbeelding terug zoeken doe je toch niet (waarom zou je?), dus mooie namen hebben toch geen zin.
Gewijzigd op 01/06/2010 16:09:47 door Terence Hersbach
in reactie op wat Karl Karl zei. Dus de methode is hetzelfde alleen de uitvoering iets anders.
Gewijzigd op 01/06/2010 16:14:35 door Justin S
Ik ga denk ik mapjes met de id nummers van klanten aanmaken met als bestandsnamen:
id-naam-van-kamer.jpg met een regex die alleen nummers en cijfers filtert.
Of ik kan het wel als MD5 opslaan, dan vervolgens via .htaccess een redirect maken van
domeinnaam.nl/img/hotel/naam-van-hotel/naam-van-kamer.jpg die gekoppeld wordt aan:
domeinnaam.nl/img/id-hotel/id-kamer/md5hash.jpg d.m.v. een database koppeling..
Ik weet het echt niet haha..
Brian Valenburg op 01/06/2010 18:31:21:
Bedankt voor alle antwoorden. MD5 is geen optie. Al hoe wel we nu nog niets met SEO doen, moet dat in de toekomst wel te doen zijn.
Ik ga denk ik mapjes met de id nummers van klanten aanmaken met als bestandsnamen:
id-naam-van-kamer.jpg met een regex die alleen nummers en cijfers filtert.
Of ik kan het wel als MD5 opslaan, dan vervolgens via .htaccess een redirect maken van
domeinnaam.nl/img/hotel/naam-van-hotel/naam-van-kamer.jpg die gekoppeld wordt aan:
domeinnaam.nl/img/id-hotel/id-kamer/md5hash.jpg d.m.v. een database koppeling..
Ik weet het echt niet haha..
Ik ga denk ik mapjes met de id nummers van klanten aanmaken met als bestandsnamen:
id-naam-van-kamer.jpg met een regex die alleen nummers en cijfers filtert.
Of ik kan het wel als MD5 opslaan, dan vervolgens via .htaccess een redirect maken van
domeinnaam.nl/img/hotel/naam-van-hotel/naam-van-kamer.jpg die gekoppeld wordt aan:
domeinnaam.nl/img/id-hotel/id-kamer/md5hash.jpg d.m.v. een database koppeling..
Ik weet het echt niet haha..
Je kan natuurlijk dmv mod rewrite alles doen wat je wilt!
Terence Hersbach op 01/06/2010 16:09:09:
waarom niet gewoon [id_van_plaatje].jpg ?
Op die manier bedoel ik ook.
Justin Streuper op 01/06/2010 16:14:08:
Ja dat kan ook :-)! Maar het ging meer om het feit dat mappen + hernoemen van het plaatje wél zin hebben
in reactie op wat Karl Karl zei. Dus de methode is hetzelfde alleen de uitvoering iets anders.
in reactie op wat Karl Karl zei. Dus de methode is hetzelfde alleen de uitvoering iets anders.
Ik zou wel de plaatjes hernoemen, maar dus naar een aparte id, niet naar image_001.jpg, image_002.jpg enzovoort.
Gewijzigd op 01/06/2010 23:43:39 door Piet Verhagen