【问题标题】:How to restrict file type (e.g. .pdf) in HTML5?如何在 HTML5 中限制文件类型(例如 .pdf)?
【发布时间】:2016-06-07 22:56:03
【问题描述】:

如何限制在 HTML5 中使用的文件类型(例如 .pem、.cer)。接受标签不能完全达到目的,因为我可以输入其他文件类型并且文件被上传。该字段是输入类型“文件”。

【问题讨论】:

  • 这与百里香无关。 thymeleaf 是模板引擎。它只负责生成 HTML
  • “输入其他文件类型”是什么意思?

标签: html html-input


【解决方案1】:

例如所有音频类型:

<input type=file accept="audio/*">

1 种音频类型:

<input type=file accept="audio/mp3">

【讨论】:

    【解决方案2】:

    HTML5 不提供豁免特定文件类型的方法。

    【讨论】:

      【解决方案3】:

      问。如何在 HTML5 中限制文件类型?

      这不可能万无一失。

      问。为什么?

      1. input 标签上的accept 属性只是一个辅助属性。它不是一个验证工具(请参阅this page 上的提示以澄清这一点)。因此,期望 accept 属性来验证文件是不现实的。
      2. accept 属性的支持因网络浏览器(甚至是最新版本)而异,因此另一个不依赖此属性来验证上传文件的原因。
      3. HTML5 中没有其他机制可以验证文件上传。
      4. 即使客户端(Web 浏览器)可以强制执行文件扩展名,用户也始终可以将文件重命名为可接受的格式并上传。例如,如果 HTML 可以限制上传为 PDF 文件,则不会阻止用户将 EXE 文件重命名为 PDF 并上传。

      问。那么解决方案是什么?

      始终在服务器端验证数据。上传与其他类型的数据没有什么不同。即使客户端上有验证数据的保护措施,也必须始终在服务器端进行验证。使用客户端选项作为助手,但不要过度依赖它们。

      【讨论】:

        猜你喜欢
        • 2011-02-16
        • 1970-01-01
        • 2022-01-22
        • 2010-12-30
        • 2011-08-02
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多