如何在 php 中检查文件是视频类型、图像类型还是文档类型
how to check if a file is either a video type, image type or a document type in php
如果某个文件属于某种类型,我正在尝试执行某项操作;图片、视频或文档。
到目前为止我尝试过的:
if(preg_match("/\.(mp4|mov)$/", $filename))
和
$videoType = array('mp4', 'mov');
$filename = $_FILES['file']['tmp_name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
上述工作None和ISSUE主要是识别视频类型
完整代码:
$info = getimagesize($_FILES['file']['tmp_name']);
$videoTypes = array('mp4', 'mov');
$imageTypes = array('gif', 'jpg', 'png');
$filename = $_FILES['file']['tmp_name'];
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if($info[2] == IMAGETYPE_GIF || $info[2] == IMAGETYPE_JPEG || $info[2] == IMAGETYPE_PNG) {
// perform action with image types
...
} else if(in_array($ext, $videoTypes)) {
// perform action with video types
...
} else {
// perform action with doc types
...
}
参考:
Check file extension in upload form in PHP
尝试使用 mime_content_type
.
<?php
$filepath = '/tmp/Video.mp4';
$extensions = ['video' => ['mp4'], 'image' => ['jpg']];
$mime_types = ['video' => ['video/mp4'], 'image' => ['image/jpeg']];
if(file_exists($filepath)) {
$extension = strtolower(pathinfo($filepath, PATHINFO_EXTENSION));
// Video
if(in_array($extension, $extensions['video'])) {
$mime = mime_content_type($filename);
if($mime !== false) {
if(in_array($mime, $mime_types['video'])) {
// do something
}
}
}
}
如果某个文件属于某种类型,我正在尝试执行某项操作;图片、视频或文档。
到目前为止我尝试过的:
if(preg_match("/\.(mp4|mov)$/", $filename))
和
$videoType = array('mp4', 'mov');
$filename = $_FILES['file']['tmp_name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
上述工作None和ISSUE主要是识别视频类型
完整代码:
$info = getimagesize($_FILES['file']['tmp_name']);
$videoTypes = array('mp4', 'mov');
$imageTypes = array('gif', 'jpg', 'png');
$filename = $_FILES['file']['tmp_name'];
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
if($info[2] == IMAGETYPE_GIF || $info[2] == IMAGETYPE_JPEG || $info[2] == IMAGETYPE_PNG) {
// perform action with image types
...
} else if(in_array($ext, $videoTypes)) {
// perform action with video types
...
} else {
// perform action with doc types
...
}
参考: Check file extension in upload form in PHP
尝试使用 mime_content_type
.
<?php
$filepath = '/tmp/Video.mp4';
$extensions = ['video' => ['mp4'], 'image' => ['jpg']];
$mime_types = ['video' => ['video/mp4'], 'image' => ['image/jpeg']];
if(file_exists($filepath)) {
$extension = strtolower(pathinfo($filepath, PATHINFO_EXTENSION));
// Video
if(in_array($extension, $extensions['video'])) {
$mime = mime_content_type($filename);
if($mime !== false) {
if(in_array($mime, $mime_types['video'])) {
// do something
}
}
}
}