Java/ImageIO 在读取整个文件之前验证格式?

标签 java javax.imageio

我正在开发一个允许用户上传图像的 Web 应用程序。 我关心的是文件的大小,特别是如果它们是无效格式。

我想知道在读取整个文件之前,java(或第三方库)中是否有一种方法可以检查允许的文件格式(jpg、gif 和 png)。

最佳答案

如果您只想支持几种类型的图像,您可以先(上传)加载图像,然后在某个时候使用前几个字节来检查您是否希望继续上传。

相当多的图像格式可以通过前几个字节识别,magic number .如果数字匹配你当然不知道文件是否有效,但它可以用来匹配扩展名和魔数(Magic Number)以防止真的根本不对应。

看看this page查看一些检查 mime 类型的 Java。请阅读文档或源代码以检查任何给定方法是否需要整个文件,或者是否可以对前几个字节进行操作。我没有使用过那些库 :)

另请查看 this page其中还列出了一些java库,以及一些基于检测的论文。

如果您找到了自己喜欢的东西,请不要忘记提供一些反馈!

关于Java/ImageIO 在读取整个文件之前验证格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411966/

相关文章:

java - Android-JSP org.json.JSONException : Value <! java.lang.String 类型的 DOCTYPE 无法转换为 JSONObject

java - 通过按给定百分比增加来传递和更新分数数组

java - 使用 fragment 和 Activity 之间的共享首选项

java - 如何使用 Marvin java 库(或任何其他免费库)附加 2 个大图像?

java - 将文本放在动画 GIF 上并将其另存为新的 GIF

java - 如何泛化结果集查询?

java - Spring webflux 不使用 @ModelAttribute 从路径变量填充自定义对象

java - ImageIO.read 在多线程执行中抛出异常

java - 使用 ImageIO.read 给出修改后的图像

java - ImageIO 无法正确导入 BufferedImage