我希望我的上传器仅允许以下类型:
- doc,docx。
- xls,xlsx。
- ppt,pptx
- 文本。
- pdf。
- 图像类型。
我该如何实现?我应该在accept
属性中输入什么?谢谢你的帮助。
编辑!!!
我还有一件事要问。当弹出窗口用于选择文件时,在右下角,将出现一个包含所有允许文件的下拉列表。就我而言,列表会很长。我在列表中看到了一个名为的选项All Supported Types
。如何默认选择它,并消除所有其他选项?
任何帮助将不胜感激。谢谢。
我希望我的上传器仅允许以下类型:
我该如何实现?我应该在accept
属性中输入什么?谢谢你的帮助。
编辑!!!
我还有一件事要问。当弹出窗口用于选择文件时,在右下角,将出现一个包含所有允许文件的下拉列表。就我而言,列表会很长。我在列表中看到了一个名为的选项All Supported Types
。如何默认选择它,并消除所有其他选项?
任何帮助将不胜感激。谢谢。
Answers:
根据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/*">
如果我正确理解了意图。注意,浏览器可能无法完全识别权威注册表中指定的媒体类型名称,因此需要进行一些测试。
使用MIME_type作为值的accept属性
<input type="file" accept="image/gif, image/jpeg" />
accept
属性MIME_type
重要更新:
由于仅使用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
包括新的。对于其他文件,您可以通过这种方式(请谅解lang)(在MIME列表类型中,不是这样)来检索文件中的MIME TYPE:
您可以选择并复制内容类型
对于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>
音频/ *-接受所有声音文件
视频/ *-接受所有视频文件
图片/ *-接受所有图片文件
MIME_type-没有参数的有效MIME类型。查看IANA MIME类型以获取标准MIME类型的完整列表
对于图像写这个
<input type=file accept="image/*">
对于其他,您可以在表单上使用accept属性来建议浏览器限制某些类型。但是,您需要在服务器端代码中重新进行验证以确保。永远不要相信客户给你的东西