Are there alternative methods to verify file types in PHP uploads that are more secure than using image processing functions?

When verifying file types in PHP uploads, using image processing functions like `getimagesize()` can be risky as it relies on the file extension which can be easily manipulated. A more secure method is to use fileinfo extension which provides more reliable file type detection based on file content rather than just the extension.

// Verify file type using fileinfo extension
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $_FILES['file']['tmp_name']);

// Allowed file types
$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];

if (in_array($mime_type, $allowed_types)) {
    // File type is allowed
    // Proceed with file upload
} else {
    // Invalid file type
    echo 'Invalid file type. Only JPEG, PNG, and GIF files are allowed.';
}

finfo_close($finfo);