Html Input元素,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);

我得到:

我只能推测输入元素没有将*.flv Mime文件:video/x-flv标识为文件类型?这有点令人沮丧!

我发现了这个:

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

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

使用:

  • Chrome:86.0.4240.198版(官方版本((64位(
  • Edge:版本87.0.664.52(官方版本((64位(

两者都是问题吗?

我已经访问了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

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

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

你需要做

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

此外,您还需要将this封装在$()中,因为它将为除id之外的大多数选择器返回一个数组。

最新更新