privatestaticMapimageContentType=newHashMap<>();
static {
imageContentType.put("jpg","image/jpeg");
imageContentType.put("jpeg","image/jpeg");
imageContentType.put("png","image/png");
imageContentType.put("tif","image/tiff");
imageContentType.put("tiff","image/tiff");
imageContentType.put("ico","image/x-icon");
imageContentType.put("bmp","image/bmp");
imageContentType.put("gif","image/gif");
}
httpServletResponse.setDateHeader("Expires", 0L);
httpServletResponse.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
httpServletResponse.addHeader("Cache-Control", "post-check=0, pre-check=0");
httpServletResponse.setHeader("Pragma", "no-cache");
httpServletResponse.setContentType("image/jpeg");
ServletOutputStream out = null;
/*****method一:由于ImageIO.read不支持较大尺寸有时候会有错误*************/
BufferedImage image = ImageIO.read(new File(filePath));
out = httpServletResponse.getOutputStream();
ImageIO.write(image, "jpg", out);
out.flush();
/*****method二:直接用文件流来处理有更好的通用性*******************************************************/
File image = new File(filePath);
FileInputStream inputStream = new FileInputStream(image);
int length = inputStream.available();
byte data[] = new byte[length];
httpServletResponse.setContentLength(length);
String fileName = image.getName();
String fileType = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
httpServletResponse.setContentType(FormatUtils.imageContentType.get(fileType));
inputStream.read(data);
OutputStream toClient = httpServletResponse.getOutputStream();
toClient.write(data);
toClient.flush();