首页 > 解决方案 > 带有 zip 验证的 php 图像验证

问题描述

我正在创建 PHP 图像验证和 zip 文件验证脚本 我的 zip 文件验证脚本正在运行,但我添加了图像验证,但它不起作用

这是我的代码

if($_FILES['fileImage']['tmp_name'][0] != "fileImage/jpg") {
die($_FILES['fileImage']['name'][0] . " is not a valid image file.");
exit;
}

$z = zip_open($_FILES['fileImage']['tmp_name'][4]);
if (!is_resource($z)) {
    die($_FILES['fileImage']['name'][4] . " is not a valid ZIP file.");
}
zip_close($z);

标签: phpmysqli

解决方案


我会先用 mime_content_type 检查临时文件。结果不依赖于文件扩展名,这很容易操作。然后进一步处理可以完成验证。

$tmpFile = $_FILES['fileImage']['tmp_name'];
switch ($mimeType = mime_content_type($tmpFile)) {
  case 'application/zip':
    //... process zip ... zip_open, etc
    break;
  case 'image/jpeg':
    //... process image ... getimagesize etc.
    break;
  default:
    die('Unknown filetype "' . $mimeType . '".');
}


推荐阅读