Input type=File "Accept" 属性在 Chrome 中不起作用?

Ber*_* IT 6 html file-extension google-chrome file input

已经阅读了相当多的文档,但似乎无法在 Chrome 中使用这个非常基本的东西。

<input type="file" accept=".jpg, .png"/>
Run Code Online (Sandbox Code Playgroud)

打开的对话框只在扩展下拉菜单中显示“自定义文件”。看到这个小提琴

在此处输入图片说明

它似乎只适用于单个扩展规范。还尝试使用一些 mime 类型无济于事。

Eug*_*nio 6

由于这个职位有一个活跃的赏金,我不能标记为需要重复的,但我强烈建议你阅读对完全相同的主题的其他计算器岗位。我认为它为您的问题提供了正确的信息量。干杯!


Rah*_*dik 1

我同意@Eugenio 的评论。您可以在客户端和服务器端验证它。

如果你使用accept="image/*"它,Custom Files它会显示Image Files

在此输入图像描述

 function validate() {
  var fileName = document.getElementById("fileType").value;
  var dot = fileName.lastIndexOf(".") + 1;
  var extFile = fileName.substr(dot, fileName.length).toLowerCase();
  if (extFile == "jpg" || extFile == "jpeg") {
   //accepted
  } else {
   alert("Only jpg and jpeg image files allowed!");
  }
 }
Run Code Online (Sandbox Code Playgroud)
<input type="file" id="fileType" accept="image/*" onchange="validate()"/>
Run Code Online (Sandbox Code Playgroud)