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

时间:2013-03-29 17:31:21

标签: 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"/>

所有浏览器的行为都相同,没有人显示PPS文件。

2 个答案:

答案 0 :(得分:3)

我找不到有效的MIME类型。但是,以下 工作:

<input type="file" accept="application/pdf,.pps" name="upldInput"/>

显然你可以mix and match文件扩展名和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"/>

演示:http://jsfiddle.net/GGFVv/2/

我应该注意文件扩展名过滤在Firefox 19中似乎不起作用。我想这是因为W3C和WHATWG定义的行为之间存在差异。

最初提及accept(1995年!)有些模糊:

  

允许INPUT标记的ACCEPT属性,这是一个媒体列表   允许输入的类型或类型模式。

当Firefox找到无法识别的值时,它似乎默认为“所有文件”,因此这在某种程度上是用户友好的(虽然并不理想)。

答案 1 :(得分:2)

编辑:您是否尝试添加:accept=".pps"

<input type="file"
   accept="application/pdf,
      application/vnd.ms-powerpoint,
      application/vnd.openxmlformats-officedocument.presentationml.slideshow,
      application/vnd.openxmlformats-officedocument.presentationml.presentation,
      .pps"
   name="upldInput"/>