限制 HTML 文件输入仅接受 .txt,而不接受 .csv(在 Chrome 中)

joj*_*ngo 6 html csv text input

我试图过滤文件格式以仅接受.txtHTML。这是我的 HTML 代码:

<Input
 type="file"
 accept="text/plain"
/>
Run Code Online (Sandbox Code Playgroud)

在 Safari 中,它可以工作并且只.txt显示文件,但在 Chrome (63.0.3239.84) 中,文件选择器也显示.csv文件。

是否可以排除.csvChrome 中的文件?

Tre*_*ent 10

accept属性指定表单输入将接受的文件类型。

句法

<input accept="file_extension|audio/*|video/*|image/*|media_type">
Run Code Online (Sandbox Code Playgroud)

提示:要指定多个值,请用逗号分隔这些值(例如 .


解决方案

只需在accept属性中包含您希望允许的文件类型,如下所示:

<input accept=".txt"
Run Code Online (Sandbox Code Playgroud)

注意:由于此文件限制是客户端,因此用户可以删除此属性并绕过此文件限制,从而可能导致漏洞。

  • 这种语法仍然允许用户附加 `.js` `.py` 文件等。 (3认同)
  • macOS Chromium 中似乎存在一个与此相关的错误。请参阅[此问题](https://bugs.chromium.org/p/chromium/issues/detail?id=646941)和[此](/sf/ask/2765619461/ for-inputtype-file-allows-other-extensions)相关问题。 (3认同)
  • 正如我尝试的那样(在 Mac 上),Safari 中的 accept="text/plain" 将得到我期望的结果(排除 .csv),而 Chrome 都接受 '.txt','text/plain' 将显示 .csv 文件。我想我只能给用户一些占位符或工具提示,无论如何,感谢您的帮助! (2认同)
  • 这似乎不再适用于 Chrome。我的电话是 86.0.4240.183。 (2认同)