springboot框架前端页面显示数据库中图片
时间: 2023-09-10 08:15:12 浏览: 155
要在 Spring Boot 框架的前端页面中显示数据库中的图片,可以通过以下步骤实现:
1. 在数据库中存储图片时,将图片转换为二进制流格式存储在数据库中。
2. 在后端代码中,查询数据库获取图片的二进制流,并将其转换为 BASE64 编码的字符串。
3. 在前端代码中,通过 `<img>` 标签将 BASE64 编码的字符串转换为图片进行显示。
以下是具体的代码实现步骤:
1. 在数据库中创建表,其中包含图片的二进制流字段,如下所示:
```sql
CREATE TABLE `image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`content` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
该表包含 id(主键)、name(图片名称)和 content(图片的二进制流)三个字段。
2. 在后端代码中,查询数据库获取图片的二进制流,并将其转换为 BASE64 编码的字符串。可以使用以下代码实现:
```java
@GetMapping("/image/{id}")
public ResponseEntity<byte[]> getImage(@PathVariable Long id) {
Image image = imageService.getImageById(id);
byte[] content = image.getContent();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
headers.setContentLength(content.length);
return new ResponseEntity<>(content, headers, HttpStatus.OK);
}
private String convertToBase64(byte[] content) {
return Base64.getEncoder().encodeToString(content);
}
```
其中,getImage() 方法用于获取指定 id 的图片的二进制流,并将其封装为 ResponseEntity 对象返回。convertToBase64() 方法用于将图片的二进制流转换为 BASE64 编码的字符串。
3. 在前端代码中,通过 `<img>` 标签将 BASE64 编码的字符串转换为图片进行显示。可以使用以下代码实现:
```html
<img src="data:image/jpg;base64,${base64Content}" />
```
其中,${base64Content} 表示后端代码中获取到的 BASE64 编码的字符串。data:image/jpg;base64, 表示图片的类型为 JPG,并且是以 BASE64 编码的格式进行传输。
注意:在实现过程中,需要注意图片的格式和大小,以及 BASE64 编码字符串的长度限制等问题。
阅读全文