这是我的上传输入,无论我尝试它拒绝显示Powerpoint PPS文件.
它显示PDF,PPT,PPTX,PPSX但不显示PPS
<input type="file"
accept="application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.presentation"
name="upldInput"/>
Run Code Online (Sandbox Code Playgroud)
所有浏览器的行为都相同,没有人显示PPS文件.
我找不到有效的 MIME 类型。但是,以下方法确实有效:
<input type="file" accept="application/pdf,.pps" name="upldInput"/>
显然,您可以混合搭配文件扩展名和 MIME 类型。在 Chrome 25 和 IE 10 (PC) 上,这会提供所需的行为,即仅显示匹配的 MIME 类型或扩展名。
演示: http: //jsfiddle.net/GGFVv/
我还尝试过混合多个扩展名和多个 MIME 类型,这似乎也有效。
<input type="file"
accept=".pps,
.jpg,
.txt,
application/pdf,
application/vnd.ms-powerpoint,
application/vnd.openxmlformats-officedocument.presentationml.slideshow,
application/vnd.openxmlformats-officedocument.presentationml.presentation" name="upldInput"/>
Run Code Online (Sandbox Code Playgroud)
演示: http: //jsfiddle.net/GGFVv/2/
我应该注意到,文件扩展名过滤似乎在 Firefox 19 中不起作用。我想这是因为 W3C 和 WHATWG 定义的行为之间存在差异。
最初提到的accept(1995 年!)有点含糊:
允许 INPUT 标记具有 ACCEPT 属性,该属性是允许输入的媒体类型或类型模式的列表。
当 Firefox 发现它无法识别的值时,它似乎默认为“所有文件”,因此这在某种程度上是用户友好的(尽管并不理想)。