我希望我的上传器只允许这些类型:
我怎样才能做到这一点?我应该在accept
属性中加入什么?谢谢你的帮助。
修改!!!
我还有一件事要问。当弹出窗口显示用于选择文件时,在右下角有一个下拉列表,其中包含所有允许文件。在我的情况下,列表将很长。我在列表中看到,有一个名为All Supported Types
的选项。如何在默认情况下选择它并消除所有其他选项?
任何帮助将不胜感激。谢谢。
答案 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)
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列表类型中,没有这些):
你可以选择&amp;复制内容类型
答案 6 :(得分:1)
用于图像写入
<input type=file accept="image/*">
其他, 您可以使用表单上的accept属性向浏览器建议限制某些类型。但是,您需要在服务器端代码中重新验证以确保。永远不要相信客户送你的东西