class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
more info about the class
$handle->allowed = array('xxx/yyy', 'zzz/*'');
To allow or forbid some MIME types, you should do as following, before calling process():
The check on MIME types is done when calling process(), not before.