记住我在⽂件上传时,有时候我们需要判断⽂件类型。但是⼜不能简单的通过扩展名来判断(防⽌恶意脚本等通过上传到服务器上),于是我们需要在服务端通过读取⽂件的⾸部⼏个⼆进制位来判断常⽤的⽂件类型。
这个⼯具类使⽤⾮常简单,通过调⽤Type即可判断,这个⽅法同时提供众多的重载⽅法,⽤于读取不同的⽂件和流。
File file = FileUtil.file("d:/test.jpg");
String type = Type(file);
//输出 jpg则说明确实为jpg⽂件
Console.log(type);
这个类是通过读取⽂件流中前N个byte值来判断⽂件类型,在类中我们通过Map形式将常⽤的⽂件类型做了映射,这些映射都是⽹络上搜集⽽来。也就是说,我们只能识别有限的⼏种⽂件类型。但是这些类型已经涵盖了常⽤的图⽚、⾳频、视频、Office⽂档类型,可以应对⼤部分的使⽤场景。
对于某些⽂本格式的⽂件我们并不能通过⾸部byte判断其类型,⽐如JSON,这类⽂件本质上是⽂本⽂件,我们应该读取其⽂本内容,通过其语法判断类型。
发布评论