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('application/pdf','image/*');
As for the PDF, you need to allow the correct MIME type. For instance, here below, you are allowing PDF and image files: