HTML 如何使文件输入类型仅接受图像文件

HTML 如何使文件输入类型仅接受图像文件

在HTML中, < input>标签创建一个接受用户输入的输入控件。根据属性的类型,输入字段可能具有不同的形式。它是一个只有属性的空元素。<input>标签通常在<form>标签内部找到,并且可通过简单设置适当的type属性来表示文本字段、复选框、下拉框、按钮和其他输入项。

它还有许多其他属性,如value、placeholder、name、accept、size、height、width等。

<input>标签的行为在很大程度上取决于其type属性的值。type属性指定要显示的<input>元素的类型。它不是一个必需的属性,因此如果没有指定此属性,则默认类型是文本。

语法

<input type=”value”>

一些 type 属性的值包括 file、image、email、number、password、submit、button 等。

输入类型:文件

file 输入类型指定文件选择控件。该元素呈现为按钮和标签,但外观因浏览器而异。按钮启动一个文件选择对话框,标签显示所选文件的文件名(s)。

我们还可以向文件选择字段添加 “multiple” 属性以允许选择多个文件。语法如下所示。

<input type="file">

文件输入类型的属性

  • Value: 文件输入的值属性包含一个字符串,表示选定文件的路径。如果尚未选择文件,则值为空字符串(””)。当用户选择多个文件时,值表示列表中的第一个文件。

  • Accept : 接受属性的值是一个字符串,指定文件输入应接受的文件类型。该字符串是用逗号分隔的唯一文件类型说明符的列表。由于给定的文件类型可以用多种方式识别,因此在需要特定格式的文件时,提供全面的类型说明符是有用的。

  • Capture: 捕获属性的值是一个字符串,指定用于图像捕捉的摄像头。用户的值表示应使用用户侧的摄像头。环境的值指定使用外向摄像头。

  • 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验证

这个例子利用input标签的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>

如果选择的文件不属于指定的图像扩展名,屏幕上会弹出提醒用户有效扩展名的弹窗。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

HTML 精选笔记