为什么我的代码每次回响`不对',而它需要回应'正确'?

时间:2018-03-16 16:52:57

标签: php html

这是我的PHP代码。当我上传任何带有.jpg或.png扩展名的文件时,我将文件扩展名存储在$lower_img_extension中,我检查了它存储jpg 无论我获得结果NOT RIGHT,结果都应为RIGHT。  我错过了什么?

<?php

if(isset($_POST["submit"]))
{
    print_r($_FILES["myfile"]);
    echo "<br>";
    $name=$_FILES["myfile"]["name"]."<br>";
    $tem_image=$_FILES["myfile"]["tmp_name"];
    $store="upload/".$name;
    $arr_img=explode(".",$name);
    $lower_img_extension=end($arr_img);
    if(empty($lower_img_extension))
    {
        echo "yes, is empty";
    }
    else
    {
        if($lower_img_extension=='jpg' || $lower_img_extension=='JPG')
        {
            echo "RIGHT";
        }
        else{
            echo "NOT RIGHT";
        }
    }
}
?>

this is my html code:-
<body>
    <form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" enctype="multipart/form-data">
        <input type="file" name="myfile" ></br>
        <input type="submit" value="upload" name="submit">
    </form>
</body>

2 个答案:

答案 0 :(得分:0)

您可以使用任何一种方法从代码下方获取扩展程序类型,然后检查它是否与您希望用户上传的类型匹配

$image = $FILES[image_name]['type'];
$path = substr("$image",6); // this gives you a image extension
or 
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

答案 1 :(得分:0)

如果条件不是你认为应该做的事情吗?

var_dump之前的代码中添加if,以确保您评估的变量包含您的认为。

var_dump($lower_img_extension);
if($lower_img_extension=='jpg' || $lower_img_extension=='JPG') ...

在这种情况下,它没有,因为您在代码中先前添加了其他内容,此处:

$name=$_FILES["myfile"]["name"]."<br>";

这可能不是检查文件类型的最佳方式,正如评论中提到的那样。但总的来说,你应该尝试这样的事情来帮助自己弄清楚出了什么问题。