我无法使用php检查flv文件的文件类型。这是我的代码
if($_FILES["file"]["type"] == "video/x-flv")
{ echo "true"; }
else{ echo "false"; }
但我的问题是,当我上传一个flv时它进入了else语句...我无法弄清楚问题..请帮助..
EDITED->
有同样的问题($_FILES["file"]["type"] == "application/x-shockwave-flash")
以及..虽然它适用于图像..
答案 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)