PHP File Uploading
PHPFile Upload System with Security Checks
Full Example of a Secure File Upload System
This way your site is pretty well protected from malicious uploads, but to improve this system even more, down below is the next code, which shows what you can add more.
Above Example but More Robust
If security is a critical thing for you, we can check the MIME type, limit upload size and rename file names, so it avoids collisions with malicious file names:
The structure of this robust system of course looks funky, but its worth it over attacks from hackers.