[DISC] Hoe images verwerken binnen CMS?

Pagina: 1
Acties:
  • 191 views sinds 30-01-2008
  • Reageer

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
De afgelopen maanden heb ik voor mijn eigen site een CMS'je geschreven dat ik binnenkort wellicht ook ga proberen te verkopen aan kleine ondernemingen.

Momenteel werkt het systeem als volgt: een gebruiker met voldoende rechten kan op een admin pagina plaatjes uploaden. Er wordt automatisch een thumbnail gemaakt en in de database wordt bijgehouden welke gebruiker dit plaatje wanneer heeft geupload. Dit alles werkt fantastisch, maar - zo blijkt nu ik er zelf mee moet werken - erg omslachtig.

Laatst had ik een aantal plaatjes gemaakt in Photoshop. Ik wilde ze snel online hebben, en heb ze direct naar de image map ge-ftp'd. Lekker makkelijk, maar op deze manier is de meta data niet opgeslagen in de database en is er geen thumbnail gemaakt.

Als ik het systeem wil verkopen, is het een nadeel dat als iemand ftp'd de zaak zo snel corrupt gemaakt is. Aan de andere kant - welke gemiddelde MKB-er zal ftp prefereren boven een upload pagina zoals ze die van bv. GMail etc. kennen?

Ik zit nu aan drie opties te denken:
  • het systeem laten zoals het nu is en de discipline hebben om via de admin plaatjes te uploaden. Voordeel: het is al klaar. Nadeel: zie boven;
  • het hele database / thumbnail gedoe eruit gooien en alleen ftp en een eenvoudige upload via de site aanbieden. Voordeel: makkelijk te realiseren. Nadeel: om snel te kunnen browsen door de plaatjes zijn thumbnails wel makkelijk en die ontbreken dan;
  • een script schrijven dat regelmatig de inhoud van de image mappen vergelijkt met de thumbnails en database info en deze gelijk trekt. Voordeel: bullet proof. Nadeel: lastige oplossing. Het CMS geeft de mogelijkheid binnen de image map, (fysiek) submappen aan te maken. Je moet dus een recursieve (= resource intensieve) functie gaan bouwen om alles te controleren. Ik zou het mezelf makkelijker kunnen maken door de functie om plaatjes in submappen onder te verdelen, eruit te gooien.
Ik zou graag jullie mening / ervaringen horen op dit gebied. Hoe werkt jouw site / CMS? Welke voor- en nadelen zie jij in bovenstaande drie oplossingen? Waar zou je behoefte aan hebben en hoe schat jij gemiddelde gebruikers van een op het MKB gericht CMS in? Alle reakties zijn welkom! :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Ik zou voor optie 3 gaan.

Het hoeft ook helemaal niet zo zwaar te zijn. Als jij er voor zorgt dat mensen via de FTP plaatjes in een andere map uploaden dan wanneer het via het CMS gebeurd, is het gelijktrekken van de nieuwe plaatjes en de database zo gebeurd.

Draai het script een paar keer per dag en je database is altijd netjes en volledig :)

  • the_stickie
  • Registratie: Juli 2001
  • Laatst online: 14-09-2025
TangLeFuzZ schreef op donderdag 23 februari 2006 @ 20:44:
Ik zou voor optie 3 gaan.

Het hoeft ook helemaal niet zo zwaar te zijn. Als jij er voor zorgt dat mensen via de FTP plaatjes in een andere map uploaden dan wanneer het via het CMS gebeurd, is het gelijktrekken van de nieuwe plaatjes en de database zo gebeurd.

Draai het script een paar keer per dag en je database is altijd netjes en volledig :)
maar dan mag je je gebruikers wél gana uitleggend at ze het resultaatvan hun veranderingen pas om x uur kunnen bekijken...
Dus een manuele "update"-knop ergens in het admin gedeelte is missch ook wel handig...

  • Upsal
  • Registratie: Mei 2005
  • Laatst online: 27-08-2024
Je zou ook je plaatjes on-the-fly kunnen thumbnailen, als bijvoorbeeld de foto gallery wordt geladen, er een dynamisch tijdelijk plaatje zichtbaar wordt gemaakt (in php wordt het dan zoiets als [img]"thumbnail.php?img=../fotos/1.jpg"[/img]).

[ Voor 11% gewijzigd door Upsal op 23-02-2006 20:50 ]


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Ik bedenk me net dat het in de praktijk niet echt handig zal zijn om met verschillende mappen voor FTP/CMS te werken.

Zeker omdat jij met submappen werkt, wil iemand die via FTP een plaatje upload, de image structuur graag voor zich zien (lijkt me).

Je kunt ergens bijhouden op welk tijdstip (zo nauwkeurig mogelijk) er een update is gedaan, files die voor dat tijdstip zijn aangemaakt op de FTP hoef je dus niet te checken. Scheelt al een boel narigheid :)

Nog een optie is misschien om te zoeken naar een soort filemonitor, die continue op je server draait en in de gaten houdt of er een map is gewijzigd, en op basis van wijziging een script kan uitvoeren.
Zoiets zal vast wel bestaan (als het al niet standaard in je besturingssysteem zit... maar daar weet ik verder weinig vanaf :)).
Upsal schreef op donderdag 23 februari 2006 @ 20:50:
Je zou ook je plaatjes on-the-fly kunnen thumbnailen, als bijvoorbeeld de foto gallery wordt geladen, er een dynamisch tijdelijk plaatje zichtbaar wordt gemaakt (in php wordt het dan zoiets als [img]"thumbnail.php?img=../fotos/1.jpg"[/img]).
Dat zal hij vast wel weten, maar ik denk niet dat dat een optie is aangezien hij volgens mij gewoon al z'n gegevens in de database wil hebben zitten, dus ook andere bestandsinformatie.

[ Voor 26% gewijzigd door TangLeFuzZ op 23-02-2006 20:54 ]


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Upsal schreef op donderdag 23 februari 2006 @ 20:50:
Je zou ook je plaatjes on-the-fly kunnen thumbnailen, als bijvoorbeeld de foto gallery wordt geladen, er een dynamisch tijdelijk plaatje zichtbaar wordt gemaakt (in php wordt het dan zoiets als [img]"thumbnail.php?img=../fotos/1.jpg"[/img]).
Je krijgt bovendien op dat moment wel een behoorlijke serverload...on the fly 20, 30 of meer thumbs in elkaar draaien...
TangLeFuzZ schreef op donderdag 23 februari 2006 @ 20:52:
Nog een optie is misschien om te zoeken naar een soort filemonitor, die continue op je server draait en in de gaten houdt of er een map is gewijzigd, en op basis van wijziging een script kan uitvoeren.
Zoiets zal vast wel bestaan (als het al niet standaard in je besturingssysteem zit... maar daar weet ik verder weinig vanaf :)).
In principe wil ik mijn CMS (php / mysql) zo onafhankelijk mogelijk houden. Het moet geschikt zijn om op windows en niet-windows OS'en te draaien. Een cronjob bv. is dus geen optie. In het kader van portabiliteit zijn de opties om met een bepaalde interval een taak uit te voeren, beperkt. Momenteel voer ik onderhoudstaken om de 30 minuten uit. De taken (gedefinieerd in PHP functies) worden getriggerd door een pageklik. In de database ligt de timestamp van de volgende taakronde opgeslagen. Op elke pageview controleer ik de huidige tijd met die timestamp; zijn we voorbij de timestamp, dan trigger ik de functie php_cronjob(), die op zijn beurt weer alle aparte taken triggert. het idee is eigenlijk om elke automatische taak op dat systeem aan te sluiten, dus ook deze...

[ Voor 61% gewijzigd door Reveller op 23-02-2006 20:59 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23-03 10:29

NetForce1

(inspiratie == 0) -> true

Je kunt ook op het moment dat een plaatje opgevraagd wordt kijken of er al meta-data voor dat plaatje beschikbaar is. Als dat niet het geval is maak je die aan, en sla je die op in een database oid. Het aanmaken van de thumbnails gebeurd dan maar een keer.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Ik zou als basis optie 1 nemen. De functionaliteit van het uploaden via de browser door mkb'ers weegt ruim op tegen de corruptie risico's.

Vervolgens zou ik je data niet onderverdelen in fysieke submappen, maar met behulp van de database verdelen. Als je dan het "geavanceerde" snelle uploaden wil behouden, waar ik het nut niet zo van inzie voor de gemiddelde gebruiker, zou ik met een cronjob of het windows equivalent ervan eens in de zoveel tijd inderdaad de map nalopen. Aangezien dit maar door één map hoeft te lopen is het probleem niet zo groot. Het nadeel is dan alleen dat je geuploade zaken niet in een map kan stoppen.

Een betere variant is afhankelijk van hoe je CMS met plaatjes omgaat. Moeten mensen ze includen in artikelen bijvoorbeeld, of bekijk je ze (vooral) vanuit een map(achtige) weergave? Als ze "geïnclude" moeten worden, dan zou ik de mappenstructuur behouden, en bij het includen de mogelijkheid bieden een fysiek bestand aan te wijzen, in plaats van dat uit de database. Als dat gebeurt kan het plaatje, na controle of het niet al eerder is gebeurd, alsnog aan de database worden toegevoegd.

DM!


  • neevedr
  • Registratie: November 2002
  • Laatst online: 20:50

neevedr

Dat was ik niet!

Het grote voordeel IMHO is dat het uploaden van meerdere afbeeldingen met FTP zo gemakkelijk gaat. Als je het eenvoudig uploaden van meerdere bestanden kan verwerken in je CMS ben je er volgens mij ook. Op welke manieren dit het handigst gedaan kan worden zou ik wel graag willen weten.

Verwijderd

Voor het uploaden van meerdere bestanden zou onderstaande link een oplossing kunnen bieden.

http://nl3.php.net/manual/nl/ref.zip.php

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
neevedr schreef op donderdag 23 februari 2006 @ 21:11:
Het grote voordeel IMHO is dat het uploaden van meerdere afbeeldingen met FTP zo gemakkelijk gaat. Als je het eenvoudig uploaden van meerdere bestanden kan verwerken in je CMS ben je er volgens mij ook. Op welke manieren dit het handigst gedaan kan worden zou ik wel graag willen weten.
Voor het uploaden heb ik GMail (attachments bij email) na-geaapt: op de upload pagina staat 1 file input, maar je kan er extra toevoegen.Nadeel is wel dat je elk plaatje apart via zijn eigen file input moet aanwijzen op je lokale schijf. Wat dat betreft zou de zip oplossing van henronijboer een oplossing zijn.
JHS schreef op donderdag 23 februari 2006 @ 21:09:
Ik zou als basis optie 1 nemen. De functionaliteit van het uploaden via de browser door mkb'ers weegt ruim op tegen de corruptie risico's.
En dan in de handleiding erbij vermelden dat ftp-en de zaak corrupt maakt maar dat dat voor eigen risico is? Is dat gebruikelijk?
Een betere variant is afhankelijk van hoe je CMS met plaatjes omgaat. Moeten mensen ze includen in artikelen bijvoorbeeld, of bekijk je ze (vooral) vanuit een map(achtige) weergave?
Ik heb voor fysieke mappen gekozen, omdat ik dan (via een WYSIWYG of meer hardcore editor ;)) directe paden kan aangeven voor bv. plaatjes, zoals [img]"images/producten/appels.jpg">.[/img], waarbij je zowel een php script als een database nodig hebt om een plaatje te laden. Is dat wat je bedoelde?

[ Voor 3% gewijzigd door Reveller op 23-02-2006 21:33 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Reveller schreef op donderdag 23 februari 2006 @ 21:32:
En dan in de handleiding erbij vermelden dat ftp-en de zaak corrupt maakt maar dat dat voor eigen risico is? Is dat gebruikelijk?
Zo heb ik het wel gedaan (ooit) iniedergeval :) .
Is dat wat je bedoelde?
Nee, maar het is wel hetgene wat ik wilde weten :) . Ik denk eerlijkgezegd dat die stress wel mee zal vallen. Anders kan je ook je pagina's op gaan slaan in verschillende mappen. Ik denk dat de overhead van het opzoeken praktisch te verwaarlozen zal zijn in vergelijking met de tijd om het plaatje te laden, en dat dit een geval is van overoptimalisatie. Maar misschien heb ik het verkeerd :) .

DM!


  • kalechinees
  • Registratie: Mei 2005
  • Laatst online: 04-03 21:01
Ik zou het hele ftp gebeuren laten vallen. Ftp is nu eenmaal niet het meest gebruikersvriendelijke systeem wat er bestaat :)

Ik zou idd een Gmail achtige upload module gebruiken. Laat gebruikers wel hun eigen submappen aanmaken maar maak achter de schermen een thumbnail directory aan. Een klein explorertje schrijven lijkt me ook niet het grootste probleem.

Dit heb ik zelf voor m'n eigen CMS gedaan. Werkt perfect.
Gebruikers komen in een Map Userfiles/username/ en kunnen hier (alleen plaatjes) doen wat ze willen. Er zit geen thumbnail functie in maar dit is vrij makelijk geschreven mocht dat nodig zijn...

iig succes :)

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Eigenlijk is de eerste reden waarom ik voor vaste mappen gekozen heb, gebruiksvriendelijkheid. In eerste instantie schreef ik het CMS voor mijzelf, en ik typ liever een image source naar images/producten/appels.jpg dan naar images.php?id=354. Op de eerste manier kan ik nog eens iets uit mijn hoofd doen en ik verraad ook de achterliggende scriptaal niet (CMS werkt ook met vriendelijke URL's, dus icm fysieke mappen voor plaatjes ziet de bezoeker nog in de URL nog in de source de extensie .php staan B)). Maar nu loop ik wel wat tegen de lamp hiermee...de keuze is nu dus (met dank aan iedereen die tot nu toe reageerde):
  • FTP afraden en het systeem zo laten
  • een script bouwen dat recursief door de mappen loopt en de database / thumbnail dir up-to-date houdt (en evt. om de load te beperken de submappen eruit gooien)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Hm, ik bedenk me net dat je op zich best images/producten/appels.jpg kan gebruiken, en dat m.b.v. je database gegevens weer kan "resolven" naar het image. Net zoals met je navigatie (i.i.g. zoals die uit vorige topics bleek) :) .

DM!


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 12-12-2025
Waarom doe je niet iets met JUpload? Perfect systeem om meerdere afbeelding te uploaden en te verwerken, er zit standaard zelfs een voorbeeld bij!

Eén nadeeltje: je hebt Java nodig.

We are shaping the future


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
JHS schreef op donderdag 23 februari 2006 @ 21:54:
Hm, ik bedenk me net dat je op zich best images/producten/appels.jpg kan gebruiken, en dat m.b.v. je database gegevens weer kan "resolven" naar het image. Net zoals met je navigatie (i.i.g. zoals die uit vorige topics bleek) :) .
Heb ik ook aan gedacht en is in principe niet moeilijk. Maar ook dat levert wel extra load op, en de vraag is waarvoor: eigenlijk alleen om het schrijven van een script dat de integriteit in de gaten houdt wanneer iemand ftp'd, te vergemakkelijken. Of mis ik nu iets?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Reveller: Nee, om ervoor te zorgen dat je src="appels/bla/stom.jpg" kan gebruiken in plaats van src="image.php?id=972" :) .

DM!


  • kmf
  • Registratie: November 2000
  • Niet online

kmf

Alex schreef op donderdag 23 februari 2006 @ 21:54:
Waarom doe je niet iets met JUpload? Perfect systeem om meerdere afbeelding te uploaden en te verwerken, er zit standaard zelfs een voorbeeld bij!

Eén nadeeltje: je hebt Java nodig.
ander nadeeltje. Je moet ervoor dokken

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


  • orf
  • Registratie: Augustus 2005
  • Laatst online: 20:38

orf

Een andere mogelijkheid is Flash voor uploads.
In mijn CMS gebruik ik een fileupload wanneer het om een enkele foto in een pagina gaat. Moet de gebruiker een fotoalbum aan kunnen maken, dan kan dit met een Flash batch upload.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Of je biedt een ftp locatie aan voor uploads en dan kan je in de admin de ftp-files naar cms kopieren.
Of je toont vanuit je cms standaard een preview pagina voor posten uiteindelijke pagina. Dan kan je in je preview pagina je check doen of de thumbnail bestaat ( vertraagt de preview maar de site niet echt ) en tijdens viewen van een pagina ervanuit gaan dat er wel een preview bestaat.

Maar mijn persoonlijke voorkeur gaat uit naar aparte ftp-locatie voor uploads en dat mensen de files dan moeten verplaatsen, ftp werkt toch wel iets beter als mensen ook tiffs / png's /zips van 20Mb en hoger willen uploaden ( of je moet je apache instellingen eventjes een beetje willen verhogen )

  • Ciqniz
  • Registratie: Oktober 2002
  • Laatst online: 07-09-2023

Ciqniz

On the move...

Een sync-knopje maken in het Admin-gedeeltje

Sync: (ftp)upload map nalopen op nieuwe afbeeldingen + deze nieuwe verwerken...

Verder het risico bij de klant neerleggen.
Eventueel kijken voor het uploaden van meerdere files idd

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
JHS schreef op donderdag 23 februari 2006 @ 22:06:
Reveller: Nee, om ervoor te zorgen dat je src="appels/bla/stom.jpg" kan gebruiken in plaats van src="image.php?id=972" :) .
Ik denk dat je dit bedoelt, maar toch...

Met MultiViews afbeeldingen via een script laden.
Een script bla.php die je aanroept met appels/bla/stom.jpg.
stom.jpg bijvoorbeeld opzoeken in een database met het goeie nummertje erbij en die weergeven. Niemand die het door heeft. Op deze manier kun je ook afbeeldingen posten op bijvoorbeeld phpBB2 forums. Die hebben vaak een beveiliging dat je geen "script.php?id=1" constructies kunt posten.

En op deze manier heb je ook niet dat je bestanden gaat overschrijven als je twee afbeeldingen met dezelfde naam upload. Je zou dan altijd de laatste versie kunnen weergeven van dezelfde naam, maar via een ander script de oude nog beschikbaar houden.

[ Voor 22% gewijzigd door Fles op 24-02-2006 10:30 ]


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Of je klanten het erg vinden om manueel in een webinterface een afbeelding te uploaden, hangt volledig af van de vraag om hoeveel plaatjes het gaat.
20 foto's in een fotoalbum proppen is handmatig idd een hoop werk, maar als je het hebt over een paar plaatjes om een stukje tekst op te leuken, dan zou ik voor handmatig uploaden gaan. Zo'n bezwaar is het niet om dat voor een paar plaatjes te doen en het is een stuk meer idiot-proof.

Reken erop dat een kant-en-klaar CMS voor jou niet perse minder werk betekent dan elke keer een site op maat maken. Je hebt minder ontwikkelwerk per klant, maar zult des te meer support moeten verlenen op dingen die je nooit hebt voorzien.

[ Voor 27% gewijzigd door Not Pingu op 24-02-2006 11:16 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Is WebDAV geen optie ?

Sundown Circus


Verwijderd

Ik zou zelf een FTP progsel maken, die je laat draaien op een andere poort dan 21, daar laat je dan mensen op connecten en dat progse/script draait meteen een db index voor het net geuploade plaatje. Je kan zelfs een FTP server maken met PHP(cli), dus mocht je geen andere talen beheersen dan is dat niet het grootste probleem.
Zie voorbeeld van de TCP/IP server, en icm RFC 959 (FTP) er voor zorgen dat je script goed gaat werken.

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 07-04 13:41
eZ publish doet het op een dergelijke manier. En dat leek mij ook vrij prettig werken.
Pagina: 1