when you upload the file you can use a hidden field called MAX_FILE_SIZE (although like the man says, it's not always supported by the browser.)
<excerpt from the man>
<form enctype="multipart/form-data" action="URL" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
The "URL" in the above example should be replaced, and point to a PHP file. The MAX_FILE_SIZE hidden field (measured in bytes) must precede the file input field, and its value is the maximum filesize accepted. Also, be sure your file upload form has enctype="multipart/form-data" otherwise the file upload will not work.
Warning
The MAX_FILE_SIZE is advisory to the browser, although PHP also checks it. Changing this on the browser size is quite easy, so you can never rely on files with a greater size being blocked by this feature. The PHP-settings for maximum-size, however, cannot be fooled. You should add the MAX_FILE_SIZE form variable anyway as it saves users the trouble of waiting for a big file being transferred only to find that it was too big and the transfer actually failed.
</excerpt>
In addition, you can set php's upload_max_filesize (ini_set?) in a .htaccess file so php limits large files--->if every album has a different directory then create a script to create/manipulate a .htaccess file on login, but i'm not sure if apache/php will check it before upload. If it doesn't, then that would be a waste of code as you could easily check the size of the uploaded file.