如何使<input type =“file”/>只接受这些类型?

时间:2013-06-25 09:36:36

标签: html html5 file-upload input

我希望我的上传器只允许这些类型:

  • doc,docx。
  • xls,xlsx。
  • ppt,pptx。
  • TXT。
  • PDF。
  • 图片类型。

我怎样才能做到这一点?我应该在accept属性中加入什么?谢谢你的帮助。

修改!!!

我还有一件事要问。当弹出窗口显示用于选择文件时,在右下角有一个下拉列表,其中包含所有允许文件。在我的情况下,列表将很长。我在列表中看到,有一个名为All Supported Types的选项。如何在默认情况下选择它并消除所有其他选项?

任何帮助将不胜感激。谢谢。

7 个答案:

答案 0 :(得分:93)

根据HTML5 LC,accept attribute的值是以逗号分隔的项目列表,每个项目都是特定的媒体类型,如image/gif,或者是{{1}这样的符号}表示所有image/*类型,或类似image的文件扩展名。 IE 10+和Chrome支持所有这些,而Firefox不支持扩展。因此,最安全的方法是使用media types.gif之类的符号,在这种情况下

image/*

如果我理解正确的意图。请注意,浏览器可能无法完全识别权威注册表中指定的媒体类型名称,因此需要进行一些测试。

答案 1 :(得分:64)

使用如下

<input type="file" accept=".xlsx,.xls,image/*,.doc, .docx,.ppt, .pptx,.txt,.pdf" />

答案 2 :(得分:11)

使用带有MIME_type的accept属性作为值

<input type="file" accept="image/gif, image/jpeg" />

答案 3 :(得分:6)

用于powerpoint和pdf文件:

<html>
<input type="file" placeholder="Do you have a .ppt?" name="pptfile" id="pptfile" accept="application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
</html>

答案 4 :(得分:4)

作为stated on w3schools

  

audio / * - 接受所有声音文件

     

视频/ * - 接受所有视频文件

     

image / * - 接受所有图像文件

     

MIME_type - 有效的MIME类型,没有参数。看看IANA MIME   标准MIME类型的完整列表的类型

答案 5 :(得分:4)

重要更新:

由于仅使用了application / msword,application / vnd.ms-excel,application / vnd.ms-powerpoint ...仅允许使用2003 MS产品,而不是最新产品。我发现了这个:

application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.slideshow, application/vnd.openxmlformats-officedocument.presentationml.presentation

这包括新的。对于其他文件,您可以通过这种方式检索文件中的MIME TYPE(请原谅lang)(在MIME列表类型中,没有这些):

enter image description here

你可以选择&amp;复制内容类型

答案 6 :(得分:1)

用于图像写入

<input type=file accept="image/*">

其他, 您可以使用表单上的accept属性向浏览器建议限制某些类型。但是,您需要在服务器端代码中重新验证以确保。永远不要相信客户送你的东西