说明:
我正在上传视频,并且像往常一样在上传之前检查文件的类型....文件没有上传所以我想输出$ _FILES的值['上传'] ['输入']它给了我以下
echo $_FILES['upload']['type'];
out put
应用/八位字节流
所以由于它失败了代码中的所有检查,如下面的
if(($_FILES['group_video']["type"] == "video/FLV")
|| ($_FILES['group_video']["type"] == "video/MP4")
或
in_array($extension, $allowedExts)
我该如何解决这个问题? 为什么不显示视频的类型? 我错过了什么吗?
答案 0 :(得分:1)
马里奥对上述评论是正确的;您的客户已确定FLV的类型为application/octet-stream
。这是FLV文件的有效mime类型,因此您需要在代码中对其进行说明。我建议你有一个你接受的文件扩展名列表,并附上一个允许的mime类型列表给每一个。例如:
array (
'mp4' => array ('audio/mp4', 'video/mp4'),
'flv' => array ('video/flv', 'video/x-flv', 'application/octet-stream')
);
现在,当您上传时,首先获得扩展名并检查mime类型是否与您为扩展程序接受的类型之一匹配。
这可以让您对错误上传错误命名或格式化媒体的人有所保证,但不会阻止用户故意上传含有恶意内容的文件;在被信任之前,应检查用户上传的所有内容是否有病毒。