首页 > 解决方案 > Html 输入元素,Type=File,*.flv 文件不是有效的 Mime 文件?

问题描述

采用以下形式:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>

    <form enctype="multipart/form-data">
        <input type="button" value="Go" />
        <input name="file" type="file" />
    </form>

    <script>
        $(document).ready(function () {
            $(':file').on('change', function () {
                var file = this.files[0].type;
                alert('Found: ' + file);
            });
        });
    </script>
</body>
</html>

如果我选择 *.flv 文件,我会收到以下错误:

Found: undefined

即使我使用:

var file = this.files[0].type;
alert('Found: ' + file);

我得到:

我只能推测 Input Element 没有将 *.flv Mime File: 识别video/x-flv文件类型?这有点令人沮丧!

我发现了这个:

关于配置 FLV 文件以在服务器上托管 使用 FLV 文件时,您可能必须将服务器配置为使用 FLV 文件格式。多用途 Internet 邮件扩展 (MIME) 是一种标准化数据规范,可让您通过 Internet 连接发送非 ASCII 文件。Web 浏览器和电子邮件客户端被配置为解释多种 MIME 类型,以便它们可以发送和接收视频、音频、图形和格式化文本。要从 Web 服务器加载 FLV 文件,您可能需要在您的 Web 服务器上注册文件扩展名和 MIME 类型,因此您应该检查您的 Web 服务器文档。FLV 文件的 MIME 类型是 video/x-flv 。FLV 文件类型的完整信息如下:

  • 哑剧类型:视频/x-flv
  • 文件扩展名:.flv
  • 必需参数:无
  • 可选参数:无
  • 编码注意事项:FLV文件是二进制文件;某些应用程序可能需要设置 application/octet-stream 子类型
  • 安全问题:无
  • 已发布规范:www.adobe.com/go/video_file_format
  • 参考:视频文件的高级主题

使用:

两个都是问题?

我去了jsfiddle.net并在这里做了同样的事情,使用以下代码:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
    <form enctype="multipart/form-data">
        <input type="button" value="Go" />
        <input name="file" type="file" onchange="go(this);" />
    </form>
</body>
</html>

Javascript:

function go(element) {
    var file = element.files[0].type;
    alert('Found: ' + file);
};

还是有同样的问题!

此代码有效!我得到其他文件完全没有问题!

Found: video/avi
Found: video/quicktime

只是找不到 *.flv 文件作为 Mime 类型?video/x-flv

标签: htmljquery

解决方案


您的代码以及您如何尝试获取输入字段的值存在问题。

你需要做

$('[name=file]').on('change', function () {
   var file = $(this).files[0].type;
    alert('Found: ' + file);
});

您还需要换行this$()因为它将为除 id 之外的大多数选择器返回一个数组。


推荐阅读