Hallo allemaal,

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.
even voor de duidelijkheid:
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:


-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


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.
waarom niet gewoon [id_van_plaatje].jpg ?

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:

images
|- 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.
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.

Reageren