输入类型文件接受不显示PPS文件

use*_*362 5 html mime-types

这是我的上传输入,无论我尝试它拒绝显示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文件.

Tim*_*ora 3

我找不到有效的 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 发现它无法识别的值时,它似乎默认为“所有文件”,因此这在某种程度上是用户友好的(尽管并不理想)。