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('image/*');
Instead of adding all image mime types one by one, which could in be around 30s, is there a way to add wildcards.