如何在php 5.2.9版中检查文件是图像还是视频类型
答案 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
帮助页面中的示例
<?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_type
为 video/mp4
,getType
方法将返回 video
。