Det verkar som om de flesta som prövat rekommenderar emot att lagra hela bilder i databasen även om det är möjligt och inte alls särskilt svårt. Tydligen ska prestandan inte vara något att hurra för när man gör så.
Angående att ladda upp via ftp och att det skulle vara icke användarvänligt så kan man fråga sig om det är användarvänligt att låta folk ladda upp bilder via ett segt-webb-gui där man inte får någon vettig feedback på hur lång tid det är kvar och där man antingen måste ladda upp en bild i taget (eller i alla fall välja dem en i taget) eller kräva att användaren ska zippa dem först till ett enda arkiv som packas upp på servern med alla problem det innebär.
Jag skulle välja ftp-lösningen där man skapar en mapp med ett namn ÅÅÅÅ-MM-DD eller vad du väljer att kalla dem. Där laddar man sedan upp sina bilder som kan heta vad som helst så länge namnen är unika i den mappen. Sedan kombineras detta med ett skript som kolla bland mapparna och hittar de som lagts till sedan sist. De mappar som lagts till gås igenom och alla bilder däri får var sin post i en databastabell med information som namn (kan automatiskt sättas till filnamnet minus filändelse om du vill men ska inte, tycker jag, behöva vara filnamnet), sökväg plus eventuell meta-information du vill ha till varje bild, typ vem tog bilden, vilka är på bilden om den typen av information är nödvändig.
När varje ny bild fått en post i databasen presenteras dessa för användaren som kan skriva in information om bilderna (om det nu behövs).
Sedan kan du egentligen välja själv hur albumen ska se ut, de kan antingen vara ett album per mapp eller så kan du välja bilder fritt från alla mappar och presentera som ett album, eftersom referenser till bilderna sparas i databasen är inte det ett problem.
Du skulle kunna ha en tabell som heter Album, en som heter Bilder och en relationstabell (många till många) som knyter dem samman.
Angående att göra thumbnails så kan skriptet som först samlar in alla nya bilder göra dessa kanske. Det är upp till dig. Med servlets skulle du kunna ha det som en bakgrundsprocess som gör thumbnails medan användaren skriver in information om bilderna i PHP blir det svårare (om du inte gör en "fullösning" med frames).
Lycka till!