【问题标题】:Restricting HTML file input to accept only .txt, and not .csv (in Chrome)将 HTML 文件输入限制为仅接受 .txt,而不接受 .csv(在 Chrome 中)
【发布时间】:2018-06-08 14:25:27
【问题描述】:

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

<Input
 type="file"
 accept="text/plain"
/>

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

是否可以在 Chrome 中排除 .csv 文件?

【问题讨论】:

    标签: html csv text input


    【解决方案1】:

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

    语法

    <input accept="file_extension|audio/*|video/*|image/*|media_type">
    

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


    解决方案

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

    <input accept=".txt"
    

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

    【讨论】:

    • 感谢回复 我尝试了这个建议,但 accept=".txt" 将在 Chrome 中包含“.csv”,甚至在 Safari 中包含“.docx”
    • 正如我所尝试的(在 Mac 上),Safari 中的 accept="text/plain" 将得到我期望的结果(不包括 .csv),并且 Chrome 都接受 '.txt'、'text/plain'将显示 .csv 文件。我想我只能给用户一些占位符或工具提示,无论如何,谢谢你的帮助!
    • 这种语法仍然允许用户附加.js.py文件等。
    • 这似乎不再适用于 Chrome。我在 86.0.4240.183。
    • 在 macOS Chromium 中似乎存在一个错误。请参阅this issuethis 相关问题。
    【解决方案2】:

    我没有尝试过,但我认为它会起作用:

    <input type="file" accept=".txt"/>
    

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2021-02-16
      • 1970-01-01
      • 2012-09-29
      • 2018-01-11
      相关资源
      最近更新 更多