PHP is a server-side language, meaning all processing is done on the server, not the client.
Being as such, there isn't anything you can do from a PHP standpoint to validate the file before it is uploaded. You could, however, use a java or flash application to at least give the user some sort of visual for the upload process.
ActiveX would allow you to validate the file client-side, but your visitors would most likely be restricted to using Internet Explorer, and who wants that forced upon them?
Users are inherently stupid. You can do everything in your power to make sure they can't screw up, but ultimately, they'll find a way. If they try to upload a 500MB movie file where your form specified a PDF file only (example), let them wait - it's their own damn fault.