java (Spring) 控制器中返回图片(验证码需求)

控制器返回图片步骤如下:

1.设置 content-type (几遍不设置,现代浏览器一般也能正常解析相应类型)

2.读取或生成图片的 FileInputStream  

3.将 FileInputStream   输出到 response.getOutputStream()。

下面例子:

有一些程序在sql server中存储图片的方式是通过二进制存储导数据库,那么保存进去之后,怎么把图片显示出来呢?(或文件系统存储图片)

直接上代码,servlet后台代码:

byte[] b1 = "";//数据库查询出来的二进制,文件系统用FileInputStream读取
InputStream in = new ByteArrayInputStream(b1);
response.setContentType("image/jpg");
OutputStream out = response.getOutputStream();
byte[] b2 = new byte[1024];
int j = 0;
while ((j = in.read(b2)) != -1) {
    out.write(b2, 0, j);
}
out.flush();
out.close();
in.close();

还可以将图片数据,保存到相对应的系统文件夹:

byte[] bytes1 = "";//文件二进制数据;
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
BufferedImage bi1 = ImageIO.read(bais);
File w2 = new File("c://新建文件夹", "照片名字.jpg");// 可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动

转: https://blog.csdn.net/weixin_44544465/article/details/90611395

参考 : https://segmentfault.com/q/1010000005180307

原文地址:https://www.cnblogs.com/fps2tao/p/13356178.html