微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-如何使用MIME验证文件?

我想使用PHP验证服务器中的文件类型.现在,我已经通过检查文件文件扩展名类型对其进行了验证.这可以正常工作,但是问题在于,这不是验证用户身份的最佳方法,因为更改使用户可以将文本文件转换为jpeg,并且仍然可以上传.

因此,我想做的是添加另一种验证方法,我还想使用PHP检查文件的MIME类型,以识别文件是图像,视频还是音频.

所以我的问题是如何编码,以便可以在PHP中使用MIME类型来验证文件?另外,如果我的文件很大,是否需要很长时间才能进行MIME验证,还是立即进行验证?

下面是我目前仅在使用PHP代码检查文件类型的情况下对Image代码

<?PHP
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    }
  }
else
  {
  echo "Invalid file";
  }
?> 

解决方法:

MIME类型查找通常非常快,在PHP中,您可以使用finfo扩展名进行查找.例:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, '/path/to/file.jpg'); // image/jpeg
finfo_close($finfo);

同样,您不应该依赖$_FILES超全局变量的类型索引,因为该值可能被欺骗,攻击者可能想要的任何东西.当然,文件扩展名也一样.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐