flv文件的$ _FILES [“file”] [“type”]出错

时间:2011-10-20 12:49:19

标签: php file-upload mime-types

我无法使用php检查flv文件的文件类型。这是我的代码

if($_FILES["file"]["type"] == "video/x-flv")
{ echo "true"; }
 else{ echo "false"; }

但我的问题是,当我上传一个flv时它进入了else语句...我无法弄清楚问题..请帮助..

EDITED->

有同样的问题
($_FILES["file"]["type"] == "application/x-shockwave-flash")

以及..虽然它适用于图像..

4 个答案:

答案 0 :(得分:2)

使用finfo_file();

尝试

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
if (finfo_file($finfo, $filename) == "video/x-flv" ){}

可能文件本身不是有效的FLV文件。

编辑。

答案 1 :(得分:1)

第一:您确定$_FILES["file"]["error"]为零吗?如果没有,请检查Error Messages Explained。通常最常见的错误是在您的上传页面的enctype="multipart/form-data"标记上没有form

第二次:绝不相信$_FILES["file"]["type"]。这是由浏览器给出的。您可能需要检查文件扩展名。

if (strtoupper(substr($_FILES["file"]["name"], -4)) == ".FLV") {
    ...
}

答案 2 :(得分:1)

测试文件扩展名与信任$_FILES["file"]["type"]一样不安全 - 它们在客户端同时设置。唯一可靠的解决方案是使用fileinfo

答案 3 :(得分:1)

您可以使用gettype()finfo函数来获取文件类型。