Use the content repository, that's the simple answer. It allows you to chose whether to store the binary data in the database or the filesystem, and there's some upload helper Tcl API available in the revision-procs.tcl library file. The Tcl API isn't as complete as we'd like (and we keep adding to it) but it should help you get started.
There's an image content datatype predefined in the content repository already and the Tcl API code I refer to above knows about the image type.
You might also take a look at the photobook application, probably the version in contrib which has been recently enhanced with bulk upload features and the like. Hacking that would be a lot easier than writing your own package IMO.