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

如何在php中检查文件是否为视频类型?,php,file,video,mime-types,Php,File,Video,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(

我有以下脚本:

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');
函数listFolderFiles($dir){
$ffs=斯堪的纳维亚($dir);
回声';
foreach($ffs作为$ff){
如果($ff!='.&&$ff!='.')){
回音“
  • ”。$ff; if(is_dir($dir./'.$ff))listFolderFiles($dir./'.$ff); 回音“
  • ”; } } 回声'; } listFolderFiles(“上传”);
    我的问题是,我想检测一个文件是否为视频(mp4或mov)类型,如何检测$ff是否为视频类型

    if(end(explode(".",$ff)) =="mp4")
    {
    echo "its an mp4 movie";
    }
    
    这就是扩展的不区分大小写版本

    <?php
    $ff="abc.MP4";
    if(strtolower(end(explode(".",$ff))) =="mp4")
    {
    echo "its an mp4 movie";
    }
    ?>
    
    
    
    这就是扩展的不区分大小写版本

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

    您可以使用
    preg\u match

    if(preg_match('/^.*\.(mp4|mov)$/i', $filename)) {
        echo $filename;
    }
    

    您可以附加另一个视频文本,如:
    (mp4 | mov | mpg | mpeg | wmv | mkv)

    您可以使用
    preg\u match

    if(preg_match('/^.*\.(mp4|mov)$/i', $filename)) {
        echo $filename;
    }
    

    您可以附加另一个视频文本,如:
    (mp4 | mov | mpg | mpeg | wmv | mkv)

    获取上传文件的mime类型并检查以下类型

    $mime = $file->getMimeType;
    $videoJS = array('video/mp4','video/ogg','video/webm');
    
    if(array_search($mime, $videoJS) !== false) {
        //do upload
    }
    

    获取上传文件的mime类型并检查如下类型

    $mime = $file->getMimeType;
    $videoJS = array('video/mp4','video/ogg','video/webm');
    
    if(array_search($mime, $videoJS) !== false) {
        //do upload
    }
    
    请使用类似的工具。此答案具有安全意识,是对上载文件类型的一般响应。使用
    文件
    的第二个优点是,它将告诉您有关所用格式的更多细节。有许多格式的组合可以合法地存储在“*.mpg”文件中。你可能无法处理所有这些问题

    我做了一个更详细的网络搜索,有一个重复的文本文章列表,但没有发布可靠的解决方案。有一个“魔法字节”检测器,其形式为。这被编译成PHP的最新版本(它是一个标准扩展)

    注意:mime内容类型()已被弃用。同样,如果需要,请尝试使用类似的工具。此答案具有安全意识,是对上载文件类型的一般响应。使用
    文件
    的第二个优点是,它将告诉您有关所用格式的更多细节。有许多格式的组合可以合法地存储在“*.mpg”文件中。你可能无法处理所有这些问题

    我做了一个更详细的网络搜索,有一个重复的文本文章列表,但没有发布可靠的解决方案。有一个“魔法字节”检测器,其形式为。这被编译成PHP的最新版本(它是一个标准扩展)


    注意:mime内容类型()已被弃用。同样,如果需要,请尝试使用
    mime\u内容类型


    使用
    mime\u内容\u类型

    这段代码使用unix“file”命令和选项--mime type来最小化输出,以便于解析。不确定是否有更好的方法解析输出

    还要确保您对正在检查的文件具有读取权限

        // 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;
    
    这段代码使用unix“file”命令和选项--mime type来最小化输出,以便于解析。不确定是否有更好的方法解析输出

    还要确保您对正在检查的文件具有读取权限。

    我使用以下代码:

        // 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;
    
    $mimeType=mime内容类型(公共路径('uploads/'.$file));
    $fileType=explode(“/”,$mimeType)[0];//视频|图像
    如果($fileType==='video'){
    //做点什么
    }
    
    我使用以下代码:

    $mimeType=mime内容类型(公共路径('uploads/'.$file));
    $fileType=explode(“/”,$mimeType)[0];//视频|图像
    如果($fileType==='video'){
    //做点什么
    }
    
    您也可以试试这个。应该是相当准确和性能

    <?php 
     function isVideo($file) {
       return is_file($file) && (0 === strpos(mime_content_type($file), 'video/'));
     }
    ?>
    

    您也可以试试这个。应该是相当准确和性能

    <?php 
     function isVideo($file) {
       return is_file($file) && (0 === strpos(mime_content_type($file), 'video/'));
     }
    ?>
    
    
    
    如果你在*nix上,你可以使用
    文件
    命令。如果你在*nix上,你可以使用
    文件
    命令。如果我上传
    mymovie.MP4
    ,你可以简单地添加一个strtolower复选框,如果我上传
    mymovie.mpeg4
    ,我希望你明白我的意思。检查扩展名并不是检测文件格式的简单方法。我仍然可以上传一个文本文件作为
    movie.mp4
    。使用像
    file
    这样的工具。是的,这很有意义,我同意,如果我上传了
    mymovie.MP4
    ?你可以简单地添加一个strtolower检查,如果我上传了
    mymovie.mpeg4
    ,我希望你明白我的意思。检查扩展名并不是检测文件格式的简单方法。我仍然可以上传一个文本文件作为
    movie.mp4
    。使用像
    file
    这样的工具。是的,这是有道理的,我同意如果你想要任何类型的代码质量,请不要依赖客户端提交的MIME类型。改为使用
    文件
    。如果您想要任何类型的代码质量,请不要依赖客户端提交的MIME类型。改为使用
    file
    。指向file is dead的链接似乎没有弃用的通知,并且似乎已列为的一部分。我遗漏了什么吗?指向文件的链接已失效似乎没有弃用的通知,并且似乎已被列为的一部分。我错过什么了吗?