【发布时间】:2013-06-27 20:27:48
【问题描述】:
我们的项目有一个使用 Java 的图像上传模块。在上传图片时,如果用户上传的图片的扩展名为 jpg/jpeg/gif/png 等,无论扩展名如何,我们只需更改其名称即可将其保存为相同的扩展名。
但这里有一个小问题。假设用户手动删除了该图像的扩展名(当然它永远不会发生,但让我们以它为例)并上传文件,它没有任何扩展名。
有没有办法在读取该图像后找出扩展名/格式(例如使用getBufferedImage() 读取图像后)?
在这里我不能使用mimeType,因为我们在上传图像本身时从用户那里获取了 mime 类型。用户可以通过选择mimeType 为"image/jpeg" 来上传不带扩展名的图像。
【问题讨论】:
-
查看这个问题/答案:stackoverflow.com/questions/51438/…
-
看看apache tika
-
您可以通过检查幻数来识别大多数文件类型:en.wikipedia.org/wiki/Magic_number_(programming)
-
寻找迭代从
ImageIO.getImageReaders(Object)返回的读者。
标签: java