根据
this answer on Stack Overflow,我们可以设置< input type =“file”/>的accept属性.过滤接受的输入,如下所示:
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
不过,您可以注意到运行以下简单的代码段,Chrome 43.0.something似乎完全忽略了这一配置,而Firefox 39.0完全可以理解.
我认为切换到一个更钝的方法,使用:
accept=".xls,.xlsx"
…在Chrome中可以正常工作,但使Firefox变得混乱,只接受使用.xlsx扩展名的文件.
考虑到这可能是非常普遍和基本的,我一定会错过一些东西:我在哪里拧紧?如何获取html5文件输入,以在浏览器中始终只提供.xls和.xlsx文件?
这是一个代码片段,用于说明我的问题(连同一个JSFiddle link,如果你想弄脏它).
Accepts application/vnd.ms-excel and the likes:<br /> <label for="file1">File input</label> <input type="file" name="file1" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"/> <hr /> Accepts .xls and .xlsx:<br /> <label for="file2">File input</label> <input type="file" name="file2" accept=".xls,.xlsx"/>
解决方法
传输它们都是MIME类型和扩展名
<input type="file" name="file2" accept="text/csv,.csv"/>