2015-10-14 56 views
0

我在玩弄使用<input type="file" />元素,并且我接受了我希望支持的各种不同文件类型。当使用HTML5元素输入类型=“文件”时,.log文件的文件类型

<input type="file" name="file" accept="image/png, image/jpeg, image/jpg, application/pdf, application/txt, text/plain, application/pdf, text/x-log, application/enex+xml, text/*, .log" /> 

根据所供应,我可以看到哪些文件类型是通过观察FileList看起来像这样传递的文件。

FileList

一切正常,但对于.log,因为你可以在上面看到,没有一个type ......我想知道是否有办法辨别.log文件?我可以看看name传递并解析文件扩展名,但想知道是否有更好的方法?我也不确定其他文件类型没有注册type,如果有文件?

回答

1

不幸的是,你不能依赖返回的类型。可用的类型将根据浏览器和操作系统而改变。通常它返回用os注册的值。

您可以使用文件名,但这不是100%可靠。没有什么能够阻止用户将zip文件重命名为.log。在大多数情况下,这也会改变哑剧。要100%确定的唯一方法是读取文件并查看它包含的内容。

+0

啊我明白了。感谢你及时的答复。我发现w3c中的[FileAPI](http://www.w3.org/TR/FileAPI/),以防万一有人好奇,但大部分情况下这回答了我的问题。 – aug