如何使用数组检查文件扩展名


how to check file extensions with an array

我想检查扩展是否是数组的一部分:所以:如果一个扩展不是禁止数组的一部分;允许做某事

 $ext = $path_info['extension'];
 $ForbiddenExts = array("php", "html", "htm");
 if( $ext != in_array($ForbiddenExts)){
 // do something allowed

将代码更改为:

$ext = $path_info['extension'];
$ForbiddenExts = array("php", "html", "htm");
if(!in_array($ext, $ForbiddenExts))
{
   // do something
}

查看此链接以了解更多解释。

除了使用

if( $ext != in_array($ForbiddenExts)){

你可以使用

if(!in_array($ext, $ForbiddenExts)){
 //your code
}

您还必须练习检查mime类型。否则可能会导致错误

例如:如果有人将".txt"文件的扩展名编辑为".pdf"(假设pdf是允许的类型)。然后,如果你不检查mime类型代码将接受pdf 格式的文件

将代码更改为:

$fileName = 'banner.jpg';
$fileNameParts = explode('.', $fileName);
echo $ext = end($fileNameParts);
$allowed_extensions = array("jpg", "jpeg", "png");
if(in_array($ext, $allowed_extensions))
{
   echo 'Allowed Extension';
   // do something
}else{
   echo 'Not Allowed Extension';
   // do something
}

查看此链接以了解更多解释。