Well, pretty much every uploader will accept any file extension of your choosing, but the size will vary based on your hosting service.
The size depends on how much PHP will allow, 2MB being the default. If you can edit PHP configurations, then you can set it to whatever the maximum limit you want.
http://www.tizag.com/phpT/fileupload.php <- that was the first tutorial I used when I wanted to learn how to upload things.
Of course, all of this information is afaik.