java后端返回二进制图片 前端进行展示 详解
java后端代码:
/** * 图片展示 * @param map * @return */ @ApiOperation("图片展示") @PostMapping("/getPucter") public Result getPucter(@RequestBody Map<String,String> map, HttpServletRequest request, HttpServletResponse respones){ String str = service.getPucter(map,request,respones); return new Result(200,"成功!",str); } @Override public String getPucter(Map<String, String> map, HttpServletRequest request, HttpServletResponse respones) { String str = ""; List<Map<String,String>> list = mapper.getFileUrl(map.get("id")); if (list!=null && list.size()>0) { Map<String,String> mapList = list.get(0); String url = mapList.get("URL"); str = FileUtil.getPhoto(respones,url); } return str; } //path 为图片在服务器的绝对路径 public static String getPhoto(HttpServletResponse response,String path) { try { File file = new File(path); FileInputStream fis; fis = new FileInputStream(file); long size = file.length(); System.out.println(size); byte[] temp = new byte[(int) size]; fis.read(temp, 0, (int) size); fis.close(); byte[] data = temp; return new String(Base64.encodeBase64(data)); } catch (IOException e) { e.printStackTrace(); return null; } }
vue页面
<el-image style="width: 100px; height: 100px" :src="imgUrl" fit="cover"></el-image>
js代码
// 获取图片 static getPucter (data) { return request({ url: /fileOps/getPucter, timeout: 100000, method: post, data: data }) } handleArchived () { let _this = this importantMap.getPucter({id: this.noteFromList.FILE_ID}).then(res => { let src = res.data.data src = src == null ? : data:image/jpg;base64, + src _this.imgUrl = src }) }
上一篇:
IDEA上Java项目控制台中文乱码