PHP检查文件扩展名[重复]

Posted

技术标签:

【中文标题】PHP检查文件扩展名[重复]【英文标题】:PHP check file extension [duplicate] 【发布时间】:2011-11-25 16:37:44 【问题描述】:

我有一个上传脚本,我需要检查文件扩展名,然后根据该文件扩展名运行单独的函数。有人知道我应该使用什么代码吗?

if (FILE EXTENSION == ???)

FUNCTION1

else if

FUNCTION2

【问题讨论】:

【参考方案1】:

pathinfo 就是你要找的东西

php.net

$file_parts = pathinfo($filename);

switch($file_parts['extension'])

    case "jpg":
    break;

    case "exe":
    break;

    case "": // Handle file extension for files ending in '.'
    case NULL: // Handle no file extension
    break;

【讨论】:

没有扩展是什么情况?案例为空?案例“”? 已更新。空字符串"" 用于文件,然后以. 结尾。 NULL 没有文件扩展名。您可以拆分 case 语句,但对于示例,我只是将它们组合在一起。【参考方案2】:
$info = pathinfo($pathtofile);
if ($info["extension"] == "jpg")  .... 

【讨论】:

我在我网站的一个部分使用了这个代码。但是,当它与echo "$info" 一起执行时,它总是返回值数组。这是为什么呢? @user2910074 这个问题太老了,我会让你看看你的代码,以便提供任何帮助。我建议你在 SO 上发布一个问题【参考方案3】:

对于 php 5.3+ 你可以使用 SplFileInfo()

$spl = new SplFileInfo($filename); 
print_r($spl->getExtension()); //gives extension 

此外,由于您正在检查文件上传的扩展名,我强烈建议您使用 mime 类型。

对于 php 5.3+ 使用 finfo

$finfo = new finfo(FILEINFO_MIME);
print_r($finfo->buffer(file_get_contents($file name)); 

【讨论】:

【参考方案4】:
$file_parts = pathinfo($filename);

$file_parts['extension'];
$cool_extensions = Array('jpg','png');

if (in_array($file_parts['extension'], $cool_extensions))
    FUNCTION1
 else 
    FUNCTION2

【讨论】:

您可能想要更改in_array 中“针”和“草垛”的顺序。【参考方案5】:
$path = 'image.jpg';
echo substr(strrchr($path, "."), 1); //jpg

【讨论】:

【参考方案6】:
  $original_str="this . is . to . find";
  echo "<br/> Position: ". $pos=strrpos($original_str, ".");
  $len=strlen($original_str);
  if($pos >= 0)
  
    echo "<br/> Extension: ".   substr($original_str,$pos+1,$len-$pos) ;
    

【讨论】:

@jurchiks this . is . to . find 在大多数操作系统中绝对是一个有效的文件名。【参考方案7】:
$file = $_FILES["file"] ["tmp_name"]; 
$check_ext = strtolower(pathinfo($file,PATHINFO_EXTENSION));
if ($check_ext == "fileext") 
    //code

else  
    //code

【讨论】:

以上是关于PHP检查文件扩展名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查文件在php中是不是存在正则表达式[重复]

PHP检查文件是不是是图像[重复]

如何检查文件是不是存在没有PHP中的扩展名?

PHP - 在不知道扩展名的情况下检查文件是不是存在

检查文件 mime 类型是不是与 php 中的扩展名匹配

PHP 带有扩展名和大小检查的PHP文件上传