File uploading is one of those things that's pretty standard for websites. Getting it right and customizable to your needs usually requires a little more work though. Especially if the business requirement is restricting file types or wants some custom events to happen based on event x, and having backward