PHP文件类型检查

Eri*_*c T 1 php

一些奇怪的情况,当我尝试一个简单的PHP代码来检查文件类型,它无法通过.以下代码中的任何错误?提前致谢.

if(($_FILES["file"]["type"]!="image/jpeg")||
            ($_FILES["file"]["type"]!="image/gif")||
            ($_FILES["file"]["type"]!="image/png")){
            echo "File must be in format of jpeg,gif or png.";
        }
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

"不是JPEG","不是GIF","不是PNG".至少有两个条件必须true.由于您使用的||,如果任何这些是true,整个if条件true.

你正在寻找"不是JPEG ,不是GIF 不是PNG".

除此之外,您可以使用更简洁的形式:

!in_array($_FILES["file"]["type"], array('image/jpeg', 'image/gif', 'image/png'))
Run Code Online (Sandbox Code Playgroud)

此外,$_FILES["file"]["type"]用户提供的信息是您不应该信任的.您应该尝试自己从文件本身中找出MIME类型.例如,请参阅如何在PHP中获取文件的内容类型?.