Java判断文件是否是图片

java 复制代码
private boolean checkFile(MultipartFile file) throws IOException {
    String imageType = getImageType(ImageIO.createImageInputStream(file.getInputStream()));
    return !StringUtils.isEmpty(imageType);
}
java 复制代码
/**
     * 获取图片类型,图片类型返回图片格式,例如JPEG
     * 非图片类型返回null
     *
     * @param inputStream
     * @return
     * @throws IOException
     */
    private static String getImageType(ImageInputStream inputStream) throws IOException {
        final Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(inputStream);
        if (imageReaders.hasNext()) {
            final ImageReader imageReader = imageReaders.next();
            return imageReader.getFormatName();
        }
        return null;
    }
相关推荐
独泪了无痕8 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
道尔柯南9 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
kingx310 小时前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
DevOpenClub12 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
露天赏雪13 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
天天被压力13 小时前
【A股分钟级高频数据完全手册 #06】北交所分钟级数据接口:京市股票Pro版最新分时
java·人工智能·python
天天被压力14 小时前
【A股分钟级高频数据完全手册 #05】指数历史分钟数据接口:Pro版沪深指数分时回放
java·人工智能·python
captain37614 小时前
▲统一功能——DispatcherServlet源码分析
java·spring·java-ee·log4j·maven
金銀銅鐵14 小时前
JDK 21 中 List.of 的实现细节:从 List12 到 ListN
java·后端·ai编程
yeccheng15 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试