[英]how to check whether file is image or video type in php version 5.2.9?
[英]How to check a file is video type or not in php?
我有以下腳本:
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');
我的問題是我想檢測一個文件是視頻(mp4 或 mov)類型,我如何檢測 $ff 是否是視頻類型?
// 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;
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";
}
?>
使用mime_content_type
mime_content_type php.net
if (mime_content_type($dir.'/'.$ff)=='video/mp4')
echo "its mp4";
我使用這個代碼:
$mimeType = mime_content_type(public_path('uploads/' . $file));
$fileType = explode('/', $mimeType)[0]; // video|image
if ($fileType === 'video') {
// do something
}
您可以使用preg_match
實現
if(preg_match('/^.*\.(mp4|mov)$/i', $filename)) {
echo $filename;
}
您可以附加另一個視頻擴展,如: (mp4|mov|mpg|mpeg|wmv|mkv)
你也可以試試這個。 應該相當准確和高效
<?php
function isVideo($file) {
return is_file($file) && (0 === strpos(mime_content_type($file), 'video/'));
}
?>
我最近用它來獲取文件類型,即圖像或視頻:
explode('/', $request->article_thumbnail->getMimeType())[0]
獲取上傳文件的 MIME 類型並檢查類型如下,
$mime = $file->getMimeType;
$videoJS = array('video/mp4','video/ogg','video/webm');
if(array_search($mime, $videoJS) !== false) {
//do upload
}
$fileType = exec( 'file --mime-type '.escapeshellarg($filePath)); //e.g. output -> /tmp/somefile.mov: video/quicktime
$fileType = substr($fileType, strpos($fileType, ": ") + 2); //strip away file path -> video/quicktime
$fileType = substr($fileType, 0,strpos($fileType, "/")); //strip away whatever video type -> video
if ($fileType == 'video') $fileType = 'im a video!';
此代碼使用帶有選項 --mime-type 的 unix 'file' 命令來最小化輸出以便於解析。 不確定是否有更好的方法來解析輸出。
還要確保您對正在檢查的文件具有讀取權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.