这是我的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>
答案 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>";
这可能不是检查文件类型的最佳方式,正如评论中提到的那样。但总的来说,你应该尝试这样的事情来帮助自己弄清楚出了什么问题。