Java判断上传图片格式的实例代码
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java判断上传图片格式的实例代码 在本文中,我们将详细介绍Java判断上传图片格式的实例代码,主要讲解了如何使用Java来判断上传的图片格式。我们都知道,客户上传图片时,可能会将png的图片后缀名改为jpg,从而绕过后缀名判断。因此,我们需要使用其他方法来判断上传的文件是否为图片类型。 第一个方法是使用ImageIO库来判断图片格式。我们可以使用ImageIO.createImageInputStream方法来获取图片的输入流,然后使用ImageIO.getImageReaders方法来获取图片的格式名称。如果格式名称不是JPEG,那么我们就可以返回错误信息。 第二个方法是使用文件头的类型来判断上传的文件是否为图片类型。这是因为文件头的类型是唯一的,例如JPEG的文件头是FFD8FF,PNG的文件头是89504E47,以此类推。我们可以使用FileInputStream来读取文件头,然后将其转换为十六进制字符串,最后使用TypeDict类来判断文件的格式类型。 下面是具体的代码实现: 我们需要定义一个TypeDict类来存储常用的文件头信息: ```java package com.metro.crm.util; public class TypeDict { / * 常用文件的文件头如下:(以前六位为准) * JPEG (jpg),文件头:FFD8FF * PNG (png),文件头:89504E47 * GIF (gif),文件头:47494638 * TIFF (tif),文件头:49492A00 * Windows Bitmap (bmp),文件头:424D * CAD (dwg),文件头:41433130 * Adobe Photoshop (psd),文件头:38425053 * Rich Text Format (rtf),文件头:7B5C7274 * ... */ public static String checkType(String photo) { if (photo.startsWith("FFD8FF")) { return "jpg"; } else if (photo.startsWith("89504E47")) { return "png"; } else if (photo.startsWith("47494638")) { return "gif"; } else if (photo.startsWith("49492A00")) { return "tif"; } else if (photo.startsWith("424D")) { return "bmp"; } else if (photo.startsWith("41433130")) { return "dwg"; } else if (photo.startsWith("38425053")) { return "psd"; } else { return "unknown"; } } } ``` 然后,我们可以使用FileInputStream来读取文件头,并将其转换为十六进制字符串: ```java package com.metro.crm.util; public class FileType { public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } public static void main(String[] args) throws Exception { FileInputStream is = new FileInputStream("F:\\aaa.jpg"); byte[] b = new byte[3]; is.read(b, 0, b.length); String photo = bytesToHexString(b); photo = photo.toUpperCase(); System.out.println("头文件是:" + photo); String ooo = TypeDict.checkType(photo); System.out.println("后缀名是:" + ooo); } } ``` 这样,我们就可以使用文件头的类型来判断上传的文件是否为图片类型。
- 粉丝: 373
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip