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

标签 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 文件。

最佳答案

我找不到有效的 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 年!)有点含糊:

Allow an ACCEPT attribute for INPUT tag, which is a list of media types or type patterns allowed for the input.

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

关于html - 输入类型文件接受不显示 PPS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15708332/

相关文章:

html - 将热点添加到具有背景图像的 DIV

javascript - 如何添加仅在单击或悬停时显示的隐藏侧边栏?

mime-types - Thrift 是否有常用的 MIME 类型?

spring - 下载文本/html文件时如何防止servlet响应编码? Spring +JSF

google-chrome - 对本地开发禁用 chrome 严格 MIME 类型检查

javascript - 用一个数组填充多个下拉菜单

javascript - 如何使用 JavaScript 拦截 HTML5 输入验证?

html - 如何将图像翻转与链接翻转连接起来?

PHP 获取远程文件 mime 类型

video - 如何将 ffmpeg 格式映射到 MIME 类型和文件扩展名?