首页 > 后端开发 > php教程 > 如何可靠地检测 PHP 中的文件类型以防止上传问题?

如何可靠地检测 PHP 中的文件类型以防止上传问题?

Linda Hamilton
发布: 2024-11-30 09:49:10
原创
697 人浏览过

How Can I Reliably Detect File Types in PHP to Prevent Upload Issues?

在 PHP 中检测文件类型:上传问题故障排除

您在使用 $_FILES['fupload' 验证图像文件类型时遇到挑战]['类型']。用户报告了不一致的错误消息,表明此方法可能不可靠。

为了确保准确的文件类型检测,请考虑替代方法:

使用 mime_content_type

您使用 mime_content_type($_FILES['fupload']['type']) 的建议部分正确。但是,仍然不建议仅依赖用户提供的值(即文件的 MIME 类型)。用户可以轻松地操纵这些信息。

更可靠的方法

对于图像文件,类型验证的首选方法是使用 exif_imagetype 函数,如下所示:

$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
登录后复制
  • exif_imagetype 返回检测到的图像类型(例如,IMAGETYPE_PNG)
  • $allowedTypes 数组定义可接受的图像类型
  • $error 变量指示文件类型是否不允许(True)或有效(False)

使用 finfo 函数

如果如果您的服务器支持 finfo 扩展,您可以利用 finfo_file 等函数来获取详细的文件信息,包括其 MIME 类型和其他属性:

$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file($_FILES['fupload']['tmp_name']);
$error = ($mime_type != 'image/gif' && $mime_type != 'image/png' && $mime_type != 'image/jpeg');
登录后复制

通过使用这些方法,您可以可靠地验证文件类型并防止意外文件上传期间出错。

以上是如何可靠地检测 PHP 中的文件类型以防止上传问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板