一,java端
1,项目是基于springboot的。读取本地图片,转成base64编码字节数组字符串,传到前端。
2,这种传输图片的方式可以用于Java后台代码生成条形码二维码,直接转成base64传给前台展示。ps:(在传给前台的字符串前要加上data:image/png;base64,,这样html的img标签的src才能以图片的格式去解析字符串)
@RequestMapping("/login") public String login(Map<String ,Object> map){ byte[] data = null; // 读取图片字节数组 try { InputStream in = new FileInputStream("E://aa.jpg"); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64编码过的字节数组字符串 map.put("image","data:image/png;base64,"+ encoder.encode(Objects.requireNonNull(data))); return "login"; } 二,html端
用的是thymeleaf模板引擎,只是单纯地展示base64编码的图片。
<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>登录</title></head><body><img th:src="${image}"></body></html> 三,效果