How can the issue of false MIME type detection, such as with .docx files being identified as application/zip, be effectively addressed in PHP file upload scripts?

Issue: To address false MIME type detection in PHP file upload scripts, you can use the `finfo` extension to accurately determine the MIME type of uploaded files.

// Check the MIME type of the uploaded file using finfo
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['file']['tmp_name']);

// Allowed MIME types
$allowed_types = ['application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];

// Check if the detected MIME type is in the allowed types
if (in_array($mime, $allowed_types)) {
    // Process the uploaded file
    // Your code here
} else {
    // Invalid file type
    echo "Invalid file type. Please upload a valid document file.";
}

// Close the finfo resource
finfo_close($finfo);