java response 图片流_java用流的方式把图片写入response

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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值