如果在 Contact Form 7 中上传的文件是二进制文件则阻止

Block if uploaded file is Binary in Contact Form 7

有人可以帮助阻止联系表 7 中的二进制文件吗 也就是说,如果 game.exe 被重命名为 game.docx 并上传,那么它必须被阻止

到目前为止,我已尝试在 wp-includes/functions.php

中添加以下代码
add_filter('wpcf7_validate_file*', 'cf7_custom_file_validation', 10, 2);
add_filter('wpcf7_validate_file', 'cf7_custom_file_validation', 10, 2);

function cf7_custom_file_validation ($result, $tag) {
    if ($tag->name === 'your-file') {
        $contentType = mime_content_type($_FILES[$tag->name]['tmp_name']);

        if ($contentType !== 'application/docx' && $contentType !== 'application/pdf' && $contentType !== 'application/doc'&& $contentType !== 'application/rtf') {
            $result->invalidate($tag, 'This file type is not supported');
        }
    }

    return $result;
}

这允许我上传 pdf 文件并检查 pdf 是否为二进制和块。但在 rtf、doc 和 docx 中它不起作用

这是因为您正在检查错误的 MIME 类型。

.doc: application/msword
.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document