如何让<input type="file">接受任意文件类型且不违反HTML有效性
如何合规实现接受任意文件类型
你尝试的accept="*/*"、accept=""、accept="*"这几种写法确实都不符合HTML规范,验证器会给出以下错误提示:
- Bad value “/” for attribute “accept” on element “input”: Expected “/” but saw “*” instead.
- Bad value “” for attribute “accept” on element “input”: Expected a MIME type but the literal ended.
- Bad value “” for attribute “accept” on element “input”: Expected “/” but saw “” instead.
要实现接受任意文件类型的合规方案,其实很简单:完全不设置accept属性。
当<input type="file">不指定accept时,浏览器默认允许用户选择所有类型的文件,这是符合HTML规范的写法,不会触发验证器错误,同时在所有现代浏览器中都能正常工作,完全满足类似Google Drive这类在线存储系统的需求。
示例代码:
<input type="file" name="user-file">
如果出于某种场景需要显式声明(虽然没必要),你也可以罗列所有可能的MIME类型,但这显然不现实,所以不设置accept属性是最优解。
内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD
相关产品推荐
相关产品推荐

