gst*_*low 5 java file-type apache-tika
为了根据文件内容(而不是扩展名)检测真实文件类型,我使用 apache Tika。
我写了以下代码:
InputStream theInputStream = new FileInputStream("D:\\video.mp4");
try (InputStream is = theInputStream;
BufferedInputStream bis = new BufferedInputStream(is);) {
AutoDetectParser parser = new AutoDetectParser();
Detector detector = parser.getDetector();
Metadata md = new Metadata();
MediaType mediaType = detector.detect(bis, md);
mediaType.getBaseType().compareTo(MediaType))
System.out.println(mediaType);
}
Run Code Online (Sandbox Code Playgroud)
这段代码输出image/jpeg.
这是事实,因为我更改了文件扩展名。
现在我想检查该文件是图像。
我在 MediaType 类中找不到枚举。
现在我只知道以下方法:
mediaType.toString().startsWith("image");
Run Code Online (Sandbox Code Playgroud)
但这段代码看起来很难看。
你能建议更好的解决方案吗?
小智 -1
嗯,据我所知,这是检查文件是否是真正的 gif、png 或任何您需要检查每个文件所具有的唯一“神奇”字节序列的文件的更可靠的方法。
如果您使用的是 Java 7,您可以在这里寻求此解决方案: https://odoepner.wordpress.com/2013/07/29/transparently-improve-java-7-mime-type-recognition-with-apache-tika/
我不是这个的作者,也没有测试过!
| 归档时间: |
|
| 查看次数: |
3587 次 |
| 最近记录: |