在Java中检测MySQL BLOB的mimetype
是的,我知道我们不应该在数据库中存储图像,谢谢
也就是说,有没有办法在java中检测mysql中存储的BLOB的mime类型
它只适用于图像(.gif、.png、.jpeg等),我不需要通用工具
谢谢大家
Bonus points if the proposed solution does not involve 3rd party libs :)
你可以在下面搜索框中键入要查询的问题!
是的,我知道我们不应该在数据库中存储图像,谢谢
也就是说,有没有办法在java中检测mysql中存储的BLOB的mime类型
它只适用于图像(.gif、.png、.jpeg等),我不需要通用工具
谢谢大家
Bonus points if the proposed solution does not involve 3rd party libs :)
# 1 楼答案
我想你可以看看标题。您需要将数据读入字节数组,然后检查字节是否与不同文件类型的头匹配
例如,对于GIF,前三个字节是“GIF”(471649164616),后跟“87a”(381637166116)或“89a”(381639166116)
所以类似的方法应该是可行的(使用} 或^{} 从BLOB获取二进制数据):
FileInputStream
进行演示,但是可以使用^{您只需要在头中查找其他文件类型(如JPG、PNG等)的字节。不确定这是不是最好的方法。有人可能会有更好的解决方案
就第三方库而言,jMimeMagic相当不错。这可能是最简单的解决方案:)
编辑
我在这里找到了this article,它列出了不同文件类型的头信息。有一些示例代码,但它是用另一种语言(Clarion)编写的