java判断图片格式

你可以使用 Java 的 ImageIO 类来判断图片格式。下面是一个例子:

import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

public class ImageFormatChecker {
    public static String getFormatName(File file) throws IOException {
        ImageInputStream iis = ImageIO.createImageInputStream(file);
        Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
        if (!readers.hasNext()) {
            return null;
        }
        ImageReader reader = readers.next();
        iis.close();
        return reader.getFormatName();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.ylw.p2p.common.utils; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FileUtils { public final static Map IMG_FILE_TYPE_MAP = new HashMap(); /** * @Description: 图片文件上传 * @author Xiao.Sky * @creaetime 2015年4月17日下午5:20:27 * @param request * @param response * @param photo * @param strtmp * 文件名称 xxx.jpg * @param path * 文件路径 * @param num * @return */ public static boolean updatePhoto(HttpServletRequest request,HttpServletResponse response, File photo, String strtmp,String path, long num) { File dir = new File(path); // 如果不存在就创建次文件夹 if (!dir.exists()) { dir.mkdirs(); } File newFile = new File(dir, strtmp); // 如果存在此文件就删除此文件 if (newFile.exists()) newFile.delete(); BufferedInputStream bis = null; FileInputStream fis = null; try { fis = new FileInputStream(photo); FileOutputStream fos = new FileOutputStream(newFile); BufferedImage src = ImageIO.read(fis); ImageIO.write(src, "png", fos); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != bis) { bis.close(); } if (null != fis) { fis.close(); } } catch (IOException e) { e.printStackTrace(); } } return true; } /** * * @Description: 普通文件上传 * @author Xiao.Sky * @creaetime 2015年4月23
实现图片上传一般需要以下步骤: 1. 在前端页面中添加一个文件上传的input元素,设置其type为file,让用户可以选择本地的图片文件进行上传。 2. 在后端服务器中编写一个接收文件上传请求的接口,并且在接口中对上传的文件进行处理,比如保存到服务器的指定目录中。 3. 在处理完上传的文件后,生成一个该图片的浏览地址,并将该地址返回给前端页面。 下面是一个简单的Java代码示例,用于实现图片上传并返回浏览地址: 前端页面: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片上传</title> </head> <body> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">上传</button> </form> <div id="result"></div> <script> // 使用ajax提交表单 var form = document.querySelector('form'); form.addEventListener('submit', function(event) { event.preventDefault(); var xhr = new XMLHttpRequest(); xhr.open('POST', '/upload'); xhr.onload = function() { if (xhr.status === 200) { var result = JSON.parse(xhr.responseText); var link = document.createElement('a'); link.href = result.url; link.textContent = result.url; document.querySelector('#result').appendChild(link); } else { alert('上传失败:' + xhr.statusText); } }; var formData = new FormData(form); xhr.send(formData); }); </script> </body> </html> ``` 后端Java代码: ```java import java.io.File; import java.io.IOException; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.fasterxml.jackson.databind.ObjectMapper; public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; // 设置上传文件的保存目录 private static final String UPLOAD_DIR = "uploads"; private static final String BASE_DIR = "/var/www/html/"; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("application/json"); // 判断上传的请求是否为multipart/form-data类型 if (!ServletFileUpload.isMultipartContent(req)) { resp.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; } // 创建一个DiskFileItemFactory对象,用于在磁盘上存储文件 DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096); factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); // 创建ServletFileUpload对象,并设置上传文件的最大大小 ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(1024 * 1024 * 10); try { // 解析请求,并获取上传文件的FileItem对象 FileItem fileItem = upload.parseRequest(req).stream() .filter(item -> !item.isFormField()) .findFirst().orElse(null); if (fileItem == null) { resp.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; } // 生成一个唯一的文件名 String fileName = UUID.randomUUID().toString() + ".jpg"; // 构建上传文件的保存路径 String savePath = BASE_DIR + UPLOAD_DIR + File.separator + fileName; // 保存上传文件 fileItem.write(new File(savePath)); // 构建上传文件的浏览地址 String url = "http://localhost/" + UPLOAD_DIR + "/" + fileName; // 返回上传文件的浏览地址 ObjectMapper mapper = new ObjectMapper(); resp.getWriter().write(mapper.writeValueAsString(new UploadResult(url))); } catch (Exception e) { resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); e.printStackTrace(); } } private static class UploadResult { private String url; public UploadResult(String url) { this.url = url; } public String getUrl() { return url; } } } ``` 在上面的代码中,我们使用了Apache Commons FileUpload库来处理文件上传请求,并且使用Jackson库来将上传结果转化为JSON格式。在处理完上传文件后,我们返回一个包含图片浏览地址的JSON对象给前端页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值