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

Tri*_*oan 61 html html5 file-upload input

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

  • doc,docx.
  • xls,xlsx.
  • ppt,pptx.
  • 文本.
  • PDF格式.
  • 图像类型.

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

编辑!!!

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

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

Juk*_*ela 105

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

<input type="file" name="foo" accept=
"application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint,
text/plain, application/pdf, image/*">
Run Code Online (Sandbox Code Playgroud)

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

  • 要为docx,xl​​sx和pptx添加suport:application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.slideshow (11认同)
  • 如果您的doc文件是用ubuntu软件制作的,这将不起作用. (4认同)

Aji*_*ith 72

使用如下

<input type="file" accept=".xlsx,.xls,image/*,.doc, .docx,.ppt, .pptx,.txt,.pdf" />
Run Code Online (Sandbox Code Playgroud)

  • 浏览器通常不会检查文件内容,因此扩展名是可以的 - 甚至是首选,因为浏览器不知道所有 mime 类型。您必须自己检查文件内容。 (4认同)
  • 不能在 mac 上使用,谢谢 (2认同)

Cha*_*mal 10

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

<input type="file" accept="image/gif, image/jpeg" />
Run Code Online (Sandbox Code Playgroud)

  • 给出的代码只接受GIF和JPEG文件,与问题中请求的内容相反. (5认同)
  • @ JukkaK.Korpela,这只是示例代码,您可以使用`MIME_type`s作为值设置`accept`属性 (2认同)
  • 这仍然显示“所有文件”选项。 (2认同)

Ami*_*man 7

对于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>
Run Code Online (Sandbox Code Playgroud)


小智 6

正如w3schools 上所述

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

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

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

MIME_type - 有效的 MIME 类型,不带参数。查看 IANA MIME 类型以获取标准 MIME 类型的完整列表

  • @MateusLeon 输而不是松。 (3认同)

Epi*_*mai 6

重要更新:

由于仅使用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
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

您可以选择并复制内容类型