【问题标题】:Understanding if a file is an image or a video from its content从其内容中了解文件是图像还是视频
【发布时间】:2018-06-26 08:23:19
【问题描述】:

我无法找到一种方法来了解文件是否真的是视频或图像。 例如:我有一个重命名为 .mp4 的 .jpg 图像,如果我通过计算机或浏览器打开它,我什么也看不到,因为它不是真正的视频。 我正在寻找一种方法来了解超出所需扩展名的视频/图像是否也是视频或图像,具体取决于请求。 理论上我想要一个类似的结果:

$ImageOrVideo = pathinfo($_FILES["file"]["tmp_name"],PATHINFO_EXTENSION);
switch($ImageOrVideo){
    case 'jpg': //check if a real image
    case 'mp4': // check if a real video
    default: exit('stop');
}

我曾想过一些解决方案,例如过去我对图像使用getimagesize(),但现在php文档说:

注意 此函数要求文件名是有效的图像文件。如果一个 提供了非图像文件,它可能被错误地检测为图像 并且函数将成功返回,但数组可能包含 无意义的值。

不要使用 getimagesize() 来检查给定文件是否为有效图像。 请改用 Fileinfo 扩展等专用解决方案。

【问题讨论】:

  • 您是否尝试过按照文档建议使用Fileinfo 扩展?
  • 是的,当然。
  • 你有问题吗?
  • 是的,他不知道这是否真的是一个视频。

标签: php file-upload


【解决方案1】:
$ImageOrVideo = $_FILES["file"]["tmp_name"];
switch(mime_content_type($ImageOrVideo)){ 
        case 'image/jpeg':
             // ........
             break;
        case 'video/mp4':
             // ........
             break;
        default:
             exit('stop');
 }

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2018-12-21
    • 2017-07-13
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多