sully.. i too would be interested to know how it works.. not the source code.. i dont plan on distributed hosting anytime soon.
What I was going for was an as-simple-as-possible implementation which would require pretty much just Perl/CGI and a method to output e-mail to users on registration (in order to guarantee we have a valid e-mail account listed).
The backbone is two inline databases that stores usernames/passwords/e-mail and IP addresses using one-way encryption all in two textfiles. Users are stored to a "temporary" database when one
creates an account. On
account activation, you're written to the "permanent" database and his file directory is created - this way we avoid creating directories unnecessarily for people who never activate.
After that the user can
login normally and use the tried-and-tested Perl upload form (available all over the Web) to send files to the server. After an upload is complete, a sort of log of the transfer is written to the
Recent 25 Pictures page for public viewing. The upload script also checks to make sure filenames are appropriate and checks the incoming file's size every 4096 bytes to see if your account will hold that much.
Total account size and filenames are tracked by another tiny textfile in the users' directory which is listed and parsed by the "List All Pictures" function in the member menu. Deletes are handled by an exec shell call which deletes the file and updates the textfile keeping track of what files are in your account. What else...oh, Web cookies. They're stored for only the active browser session just so your username persists in between various CGI script calls, instead of having to log in time and time again.
That's about all. I don't really care for releasing the code widely unless there was serious interest in taking the code and adding features onto it - but we don't have much of a userbase here with Perl experience anyway.
