如何在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的链接似乎没有弃用的通知,并且似乎已列为的一部分。我遗漏了什么吗?指向文件的链接已失效似乎没有弃用的通知,并且似乎已被列为的一部分。我错过什么了吗?