From the formal school/course administration side, Moodle does all this very well. All of the options I've mentioned can be hidden from public view and require users to log in.
Moodle 1.9 is much more friendly than Moodle 2.x towards multimedia in this respect since you can upload all the photos you like, anyway you like and access them easily and predictably. Personally, I find Moodle 2.x unnecessarily complicated for file management.
It's all swings and roundabouts and I don't what your specific intentions are and you may not have fully formed ideas yet either; It's something that usually evolves over time. I recommend spending some time with all the most suitable options at your disposal and trying out what you'd like to achieve. I wrote an article on how to set up local versions of web software on a PC, using Moodle as an example. The principles are the same for any PHP based system including Wordpress, BuddyPress, and Elgg: http://blog.matbury.com/2012/01/02/do-you-want-to-get-started-with-moodle/
I hope this helps!