图片类型识别

1. 获取文件类型

在PHP中,可以使用$_FILES数组来获取上传的文件信息。$_FILES数组包含了文件名、类型、大小、临时文件路径和错误信息等。

<?php
// 获取上传文件的数组
$fileInfo = $_FILES['file'];

// 获取文件类型
$fileType = $fileInfo['type'];
?>

2. 判断文件类型

<?php
// 定义允许的图片类型
$allowedTypes = array(
    IMAGETYPE_JPEG,
    IMAGETYPE_PNG,
    IMAGETYPE_GIF
);

// 判断文件类型是否在允许的类型中
if (!in_array($fileType, $allowedTypes)) {
    // 文件类型不正确
    echo "不允许的文件类型";
    exit;
}
?>

3. 使用函数识别图片类型

<?php
// 获取文件路径
$filePath = $fileInfo['tmp_name'];

// 使用getimagesize()函数获取图片信息
$imageInfo = getimagesize($filePath);

// 获取图片类型
$imageType = $imageInfo[2];

// 判断图片类型是否在允许的类型中
if (!in_array($imageType, $allowedTypes)) {
    // 图片类型不正确
    echo "不允许的图片类型";
    exit;
}
?>

图片类型

1. 文件扩展名检查

通过检查上传文件的扩展名,可以初步判断文件类型。

<?php
// 获取文件名
$fileName = $fileInfo['name'];

// 获取文件扩展名
$fileExtension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));

// 定义允许的文件扩展名
$allowedExtensions = array('jpg', 'jpeg', 'png', 'gif');

// 判断文件扩展名是否在允许的扩展名中
if (!in_array($fileExtension, $allowedExtensions)) {
    // 文件扩展名不正确
    echo "不允许的文件扩展名";
    exit;
}
?>

2. MIME类型检查

MIME类型是描述文件类型的协议,PHP提供了finfo_file()函数来获取文件的MIME类型。

<?php
// 使用finfo_file()函数获取文件的MIME类型
$mimeType = finfo_file(new finfo(FILEINFO_MIME_TYPE), $filePath);

// 判断MIME类型是否在允许的类型中
if (!in_array($mimeType, $allowedTypes)) {
    // MIME类型不正确
    echo "不允许的MIME类型";
    exit;
}
?>

总结