以以下形式:
<!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之外的大多数选择器返回一个数组。