Java 找出图像的扩展名,如果该图像没有';我没有分机

Java 找出图像的扩展名,如果该图像没有';我没有分机,java,Java,我们的项目有一个使用Java的图像上传模块。在上传图像时,如果用户上传的图像扩展名为jpg/jpeg/gif/png等,无论扩展名是什么,我们只需更改其名称即可将其保存为相同的扩展名 但这里有一个小问题。假设用户手动删除该图像的扩展(当然,它从不发生,但是我们把它当作例子)并上传文件,它没有任何扩展。 在读取该图像之后(例如使用getBufferedImage()读取图像之后),是否有办法找到扩展名/格式 在这里,我不能使用mimeType,因为我们在上传图像时从用户那里获取mime类型。用户可

我们的项目有一个使用Java的图像上传模块。在上传图像时,如果用户上传的图像扩展名为jpg/jpeg/gif/png等,无论扩展名是什么,我们只需更改其名称即可将其保存为相同的扩展名

但这里有一个小问题。假设用户手动删除该图像的扩展(当然,它从不发生,但是我们把它当作例子)并上传文件,它没有任何扩展。 在读取该图像之后(例如使用
getBufferedImage()
读取图像之后),是否有办法找到扩展名/格式


在这里,我不能使用
mimeType
,因为我们在上传图像时从用户那里获取mime类型。用户可以通过选择
mimeType
作为
“image/jpeg”上传图像,而无需扩展名

有像或这样的java库可以从纯内容中检测文件类型。

有像或这样的java库可以从纯内容中检测文件类型。

查看此问题/答案:查看apache tikaYou可以通过检查幻数识别大多数文件类型:查看迭代读卡器从返回。请参阅此问题/答案:查看apache tikaYou可以通过检查幻数来识别大多数文件类型:look迭代从返回的读取器。