HTML5文件输入始终接受“未知”文件类型

7

我正在编写一个Web应用程序,需要用户选择csv文件。但是由于需要用户具有几个后缀名的文件,因此通常会有多个名称相似的文件,而只有其中一个是.csv格式的。问题在于accept=".csv"只能部分地工作-它允许用户按csv过滤,但不会默认按未知文件类型进行过滤。

<fieldset name="inputForm">
  <legend>Input</legend>

  <label>Input file:</label>
  <input name="inputFile" type="file" accept=".csv">
</fieldset>

我也尝试了accept="text/csv, .csv",但它没有改变任何东西。

结果: 截图

用户可能会意外选择例如某个.txt文件或.png文件,这将导致应用程序因输入文件格式不正确而发生故障。用户可以选择仅限CSV或仅限“未知”进行过滤,但我更喜欢CSV是默认过滤器,因为实际上没人会切换文件过滤选项,所以这是无用的...


1
这只发生在Unix上吗?因为我无法复现该情况:https://jsfiddle.net/a8k66nye/ - Milaci
我也遇到了同样的问题。我正在使用Ubuntu 16.04.3 LTS。可能是操作系统的bug? - MattCochrane
在Ubuntu 14.04.1下相同。 - roffez
1个回答

1
抱歉,这是操作系统的行为,不在浏览器范围内。 accept 属性主要是为了前端使用方便,而不是真正的验证。建议使用 JavaScript 或服务器端验证来确保所选文件是所需的正确 MIME 类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接