如何允许文件输入类型仅接受图像文件
HTML 中的 <input> 标签用于创建一个接受用户输入的输入控件。根据属性的类型,输入字段可能具有不同的形式。它是一个仅包含属性的空白元素。<input> 标签通常位于 <form> 标签内,只需设置适当的 type 属性即可用于表示文本字段、复选框、下拉菜单、按钮和其他输入。
它还具有许多其他属性,例如值、占位符、名称、接受、大小、高度、宽度等。
<input> 标签的行为因其 type 属性的值而有很大差异。type 属性指定要显示的 <input> 元素的类型。它不是必需属性,因此,如果未指定此属性,则默认类型为文本。
语法
<input type="value">
type 属性的一些值包括文件、图像、电子邮件、号码、密码、提交、按钮等。
输入类型:文件
file 输入类型指定文件选择控件。此元素由按钮和标签渲染,但外观因浏览器而异。按钮启动文件选择对话框,标签显示所选文件名。
我们还可以为文件选择字段添加"multiple"属性,以允许选择多个文件。语法如下所示。
<input type="file">
文件输入类型的属性
值:文件输入的 value 属性包含一个字符串,表示所选文件的路径。如果尚未选择任何文件,则该值为空字符串 ("")。当用户选择多个文件时,该值表示列表中的第一个文件。
接受:接受属性值是一个字符串,用于指定文件输入应接受哪些文件类型。此字符串是由逗号分隔的唯一文件类型说明符列表。由于给定文件类型可以通过多种方式识别,因此在需要特定格式的文件时,提供一套全面的类型说明符非常有用。
Capture: Capture 属性值是一个字符串,用于指定将使用哪个摄像头进行图像捕获。值为 user 表示应使用用户端的摄像头。值为 environment 则指定使用外置摄像头。
Multiple: 当指定 multiple 布尔属性时,文件输入允许用户选择多个文件。
当我们使用 <input type="file"> 时,它接受所有文件类型。但是,可以将文件类型限制为仅限图像或特定的图像文件扩展名。这可以通过以下方式实现:
使用"accept"属性
众所周知,'accept'属性指定了一个过滤器,用于过滤用户可以从文件输入对话框中选择的文件类型。有几种方法可以使用此属性将文件类型限制为仅限图像文件。
示例(将文件输入类型限制为图像)
以下示例演示了如何使用"accept"属性在不指定任何扩展名的情况下仅接受图像文件。
<!DOCTYPE html>
<html>
<head>
<title>How to Allow the File Input Type to Accept Only Image Files</title>
</head>
<body>
<input type="file" id="example1" name="example1" accept="image/*">
</body>
</html>
示例(将文件输入类型限制为图像扩展名)
以下示例演示了如何使用"accept"属性仅接受具有指定扩展名的图像文件。
<!DOCTYPE html>
<html>
<head>
<title>How to Allow the File Input Type to Accept Only Image Files</title>
</head>
<body>
<input type="file" id="example2" name="example2" accept="image/x-png,image/gif,image/jpeg">
</body>
</html>
Or
<!DOCTYPE html>
<html>
<head>
<title>How to Allow the File Input Type to Accept Only Image Files</title>
</head>
<body>
<input type="file" id="example2" name="example2" accept=".png, .jpg, .jpeg" />
</body>
</html>
使用 JavaScript 验证
此示例利用输入标签的 accept 属性以及服务器端验证来验证内容是否确实是预期的文件类型。
示例
<!DOCTYPE html>
<html>
<head>
<title>How to Allow the File Input Type to Accept Only Image Files</title>
</head>
<body>
<body>
<input type="file" id="fileName" name="example3" accept=".jpg,.jpeg,.png,.gif" onchange="validateFileType()" />
<script type="text/javascript">
function validateFileType() {
var fileName = document.getElementById("fileName").value;
var idxDot = fileName.lastIndexOf(".") + 1;
var extFile = fileName.substr(idxDot, fileName.length).toLowerCase();
if (extFile == "jpg" || extFile == "jpeg" || extFile == "png" || extFile == "gif") {
//TO DO
} else {
alert("Only jpg, jpeg, png and gif files are allowed!");
}
}
</script>
</body>
</html>
如果选定的文件不属于指定的图像扩展名,则屏幕上会弹出窗口通知用户有效的扩展名。
相关文章
有用资源
html 参考教程 - 该教程包含有关 html 的更多信息:https://www.cainiaomax.com/html/

