如何在php中检查文件是否为视频类型?

Kal*_*ick 1 php video file mime-types

我有以下脚本:

function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
    }
    echo '</ol>';
}
listFolderFiles('upload');
Run Code Online (Sandbox Code Playgroud)

我的问题是我想检测一个文件是视频(mp4或mov)类型,我怎么能检测到$ ff是一种视频类型?

Web*_*per 8

    // Type contains video/mp4,video/avi,video/mpeg,video/mpg etc
    if(preg_match('/video\/*/',$_FILES['add_image_image']['type'])): 
        echo "THIS IS A VIDEO FILE";
    else:
          echo "NOT A VIDEO FILE";           
    endif;
Run Code Online (Sandbox Code Playgroud)


Han*_*nky 7

if(end(explode(".",$ff)) =="mp4")
{
echo "its an mp4 movie";
}
Run Code Online (Sandbox Code Playgroud)

你去,对于不区分大小写的扩展版本

<?php
$ff="abc.MP4";
if(strtolower(end(explode(".",$ff))) =="mp4")
{
echo "its an mp4 movie";
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 我希望你明白我的观点.检查扩展名不是检测文件格式的简单方法.我仍然可以将文本文件上传为`movie.mp4`.使用像`file`这样的工具. (3认同)

小智 5

使用mime_content_typemime_content_type php.net

if (mime_content_type($dir.'/'.$ff)=='video/mp4')
    echo "its mp4";
Run Code Online (Sandbox Code Playgroud)


Pau*_*nko 5

我使用这段代码:

$mimeType = mime_content_type(public_path('uploads/' . $file));
$fileType = explode('/', $mimeType)[0]; // video|image

if ($fileType === 'video') {
    // do something
}
Run Code Online (Sandbox Code Playgroud)