gpt4 book ai didi

php - $_FILES ["file"] ["type"] 和 end(explode (".", $_FILES ["file"] ["name"])) 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 13:40:15 26 4
gpt4 key购买 nike

<分区>

我使用 var_dump(@$_FILES['file']['type']) 来测试我上传的文件类型

首先,我上传了一个名为“uninstall.exe”的exe文件,它返回了

"string 'application/octet-stream' (length=24)"

然后,我将这个文件重命名为uninstall.png,它返回了

string 'image/png' (length=9)

我的结论是:$_FILES['file']['type'] 只检查文件扩展名,不检查原始文件类型。

以下代码来自w3cschool :

$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))

我认为上面代码中的 $_FILES["file"]["type"] 是不必要的,我们可以使用 explode() 来检查文件扩展名>in_array

我只是一个 php 初学者,有人可以证实我的想法吗?谢谢!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com