Ok, so I'm making a site with a custom CMS and the people who will be inputting information typically try to hand me photos that are 4000 by 3000 pixels at 300dpi. This is obviously bad... I need to find a way to automatically make them smaller (but still nice-looking) both in file size and image dimensions as they are uploaded to free up space in the server and decrease loading time, etc.

Any ideas would be greatly appreciated.