如何在php 5.2.9中检查文件是图像还是视频类型?

时间:2010-06-19 05:59:56

标签: php

如何在php 5.2.9版中检查文件是图像还是视频类型

6 个答案:

答案 0 :(得分:18)

$mime = mime_content_type($file);
if(strstr($mime, "video/")){
    // this code for video
}else if(strstr($mime, "image/")){
    // this code for image
}

适用于大多数文件扩展名。

答案 1 :(得分:6)

请参阅我对

的回答

示例代码

 function getMimeType($filename)
 {
     $mimetype = false;
     if(function_exists('finfo_fopen')) {
         // open with FileInfo
     } elseif(function_exists('getimagesize')) {
         // open with GD
     } elseif(function_exists('exif_imagetype')) {
        // open with EXIF
     } elseif(function_exists('mime_content_type')) {
        $mimetype = mime_content_type($filename);
     }
     return $mimetype;
 }

答案 2 :(得分:3)

您可以使用finfo_file function

检查MIME类型

帮助页面中的示例

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

编辑:在更好地检查您的问题之后,这将无效,finfo函数需要PHP 5.3.0

答案 3 :(得分:2)

if(isset($_FILES['my_file'])) {
$mime = $_FILES['my_file']['type'];
if(strstr($mime, "video/")){
$filetype = "video";
}else if(strstr($mime, "image/")){
$filetype = "image";
}else if(strstr($mime, "audio/")){
$filetype = "audio";
}  

答案 4 :(得分:0)

我使用以下代码,该代码比第一个也是最受争议的答案中的IMO更通用:

$mimeType = mime_content_type($filename);
$fileType = explode('/', $mimeType)[0];

我希望它对任何人都有帮助。

答案 5 :(得分:0)

相当老的问题,但对于将来看这个的其他人,我会这样处理:

function getType($file): string
{
    $mime_type = mime_content_type($file);

    return strtok($mime_type, '/');
}

此方法利用 strtok 返回第一个 $mime_type 之前的 / 字符串部分。

例如,假设 $file$mime_typevideo/mp4getType 方法将返回 video