gpt4 book ai didi

PHP - 遍历 $_FILES 以检查文件类型

转载 作者:可可西里 更新时间:2023-11-01 12:43:04 26 4
gpt4 key购买 nike

我关于 SO 的第一个问题,谢谢。 :)

我正在为我的公司开发一个支持问题记录系统,它必须允许上传文件以及提交到我们数据库的任何问题。可能有 0-6 个不同的上传需要检查,以及支持问题。我已经设法通过隐藏输入字段 (imgcount) 获得有多少文件的准确变量,只要通过 type="file"输入选择图像或从表单中删除图像,该输入字段就会通过 js 更新。

我的 [input type="file"] 名称是 image1、image2 等。因为我认为以这种方式遍历它们会更容易。

提交表单后,以下代码会查看是否有任何文件并检查它们是否为有效类型 (gif/jpeg/png),以便可以安全地上传它们。我不太担心病毒,因为支持系统有很好的安全登录,而且我们信任我们的客户。

$sscount = $_POST['imgcount'];
echo $sscount; //to test the variable
if($sscount>0){
for($i = 1; $i <= $sscount; $i++){
if (($_FILES["image$i"]["type"] == "image/gif")
|| ($_FILES["image$i"]["type"] == "image/jpeg")
|| ($_FILES["image$i"]["type"] == "image/png" )
&& ($_FILES["image$i"]["size"] < 500000))
{

}
else
{
$errormsg .= "Error: Image $i must be either JPEG, GIF, or PNG and less than 500 kb.<br />";
}
}
}

但是这似乎没有正确循环,有人知道我如何让它循环并正确返回吗?

最佳答案

&& 运算符具有更高的 precedence而不是 ||,所以不是你想要的 (A OR B OR C) AND D,它实际上是 A OR B OR (C AND D)

您可以使用括号来强制执行您想要的评估。

但是,像这样的东西可能更干净,更容易维护/阅读:

$allowed_types=array(
'image/gif',
'image/jpeg',
'image/png',
);


$sscount = $_POST['imgcount'];
if($sscount>0){
for($i = 1; $i <= $sscount; $i++){

if (in_array($_FILES["image$i"]["type"], $allowed_types) &&
($_FILES["image$i"]["size"] < 500000))
{

}

}
}

关于PHP - 遍历 $_FILES 以检查文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143544/

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