【问题标题】:html5 file input always accepts "unknown" file typehtml5 文件输入始终接受“未知”文件类型
【发布时间】:2018-06-24 06:48:30
【问题描述】:

我正在编写需要用户选择 csv 文件的网络应用程序。但是,由于要求用户拥有带有多个后缀的文件,因此通常会有多个名称相似的文件,而其中只有一个是 .csv。问题是 accept=".csv" 只能部分工作 - 它允许用户按 csv 过滤,但默认情况下不会按 unknown 文件类型过滤

<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 仅作为默认过滤器,因为很明显没有人会切换文件过滤选项,所以实际上它是无用的......

【问题讨论】:

  • 只发生在 unix 上吗?因为我不能生产那种情况:jsfiddle.net/a8k66nye
  • 对我来说同样的问题。我正在使用 Ubuntu 16.04.3 LTS。一定是操作系统错误?
  • 在 Ubuntu 14.04.1 下相同

标签: html forms csv


【解决方案1】:

很遗憾,这是操作系统行为,不在浏览器范围内。 accept 属性主要是为了前端的易用性,而不是真正的验证。我建议使用 JavaScript 或服务器端验证来确保选择的文件是所需的正确 mime 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-11
    • 2017-07-17
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 2017-04-13
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多