php 上传不识别 .flv 和 f4v 扩展名

标签 php flash file-extension

我有一个上传视频的页面,我希望文件类型是mp4 flash和webm文件。所有 mp4 扩展文件和 webm 文件都可以正常工作,但无法识别 flash 文件(.flv 和 .f4v),因此 php 返回值“application/octet-stream”,我认为这是任何文件的默认 MIME不承认。有没有比此代码更好的方法来分别识别真正的 MIMES(video/x-flv 和 video/x-f4v)的 flash 文件?

$type   = $_FILES["uploaded"]["type"];
$allowedTypes  = ["video/mp4","video/quicktime","video/x-flv","video/x- f4v",  
                 "video/webm"];
$isRefusedType = !in_array($type, $allowedTypes);


if ($isRefusedType)
 {
   $message="not an accepted file type";
 }
    else $message="OK";

最佳答案

也许你可以试试这段代码:

<?php
    $finfo = finfo_open(FILEINFO_MIME_TYPE); // mimetype
    $type  = finfo_file($finfo, $filename);
    finfo_close($finfo);
?>

如所述here ,您将需要 PHP >= 5.3.0,这有问题吗?

另一个想法可能是检查数据签名(参见 there ):

<?php
    $s = file_get_contents($_FILES["uploaded"]["tmp_name"]);
    if ( substr($s,0,3) == 'FLV' ) { /* It's good! */ } 
?>

关于php 上传不识别 .flv 和 f4v 扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991863/

相关文章:

php - 我在插入数据库时​​使用 mysqli 准备好的语句抛出错误

c# - Need Insight - 需要 webservice c# .net TO php mysql 的软件开发人员

php - 使用 MYSQL LAST_INSERT_ID() 检索插入行的 ID?

javascript - 基于Flash的录音机/播放器应用程序对象将如何与网页中的JavaScript通信?

python - "force"用户使用带有 argparse 的特定文件扩展名的最佳方法是什么?

java - 将唯一的文件扩展名扫描到变量中

php - 发送批量 Whatsapp 消息 Android

javascript - Flash、AJAX 或其他用于基于 Web 的演示界面的东西?

jquery - 是否有可用于在我的网站中进行视频修剪/剪切的 flash/JavaScript 库?

html - 您应该使用 .htm 还是 .html 文件扩展名?有什么区别,哪个文件是正确的?