What are some common pitfalls when using PHP upload scripts?

One common pitfall when using PHP upload scripts is not properly validating the file type before allowing it to be uploaded. This can lead to security vulnerabilities such as allowing malicious files to be uploaded to the server. To solve this issue, always check the file type using functions like `mime_content_type()` or `pathinfo()` before moving the file to the upload directory.

// Check file type before allowing upload
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
$fileType = mime_content_type($_FILES['file']['tmp_name']);

if (!in_array($fileType, $allowedTypes)) {
    die('Invalid file type. Only JPEG, PNG, and GIF files are allowed.');
}

// Move file to upload directory
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);