后端获得数据类型为img,如何使数据传递到VUE前端将图片展示出来 Java如何实现
时间: 2024-05-08 22:22:09 浏览: 106
在 Java 后端中,将图片数据传递到前端可以通过以下步骤实现:
1. 将图片数据以二进制流的形式传递到前端,可以使用 HttpServletResponse 对象的 OutputStream 将图片数据写入 response 中,示例代码如下:
```
@RequestMapping(value = "/getImg", method = RequestMethod.GET)
public void getImg(HttpServletResponse response) throws IOException {
// 获取图片数据
byte[] imgData = getImageData();
response.setContentType("image/jpeg");
response.setContentLength(imgData.length);
response.getOutputStream().write(imgData);
response.getOutputStream().flush();
}
```
2. 在前端使用 Vue.js,可以通过在模板中使用 img 标签来显示图片,如下所示:
```
<template>
<div>
<img :src="imgUrl" />
</div>
</template>
<script>
export default {
data() {
return {
imgUrl: ''
}
},
mounted() {
this.loadImg()
},
methods: {
loadImg() {
// 发送请求获取图片数据
axios.get('/getImg').then(res => {
// 将二进制数据转换成base64格式
let imgUrl = 'data:image/jpeg;base64,' + btoa(
new Uint8Array(res.data)
.reduce((data, byte) => data + String.fromCharCode(byte), '')
)
this.imgUrl = imgUrl
})
}
}
}
</script>
```
在上面的代码中,通过 axios 发送 GET 请求获取图片数据,并将二进制数据转换成 base64 格式,然后将其赋值给 img 标签的 src 属性,以显示图片。
阅读全文