SpringBoot传blob图片给前端 
时间: 2023-03-20 14:00:42 浏览: 57
要将 Spring Boot 中的 Blob 图片传递给前端,可以遵循以下步骤:
1. 将 Blob 图像转换为字节数组(byte array)
使用 Java 中的 `Blob` 类获取 Blob 图像数据,然后使用 `Blob.getBytes()` 方法将其转换为字节数组。
示例代码:
```java
Blob blob = resultSet.getBlob("image_blob");
byte[] imageBytes = blob.getBytes(1, (int) blob.length());
```
2. 将字节数组编码为 Base64 字符串
将字节数组转换为 Base64 编码的字符串,以便在 JSON 中传递。
示例代码:
```java
String base64EncodedImage = Base64.getEncoder().encodeToString(imageBytes);
```
3. 创建包含 Base64 字符串的 JSON 响应
将 Base64 编码的字符串添加到 JSON 对象中,并将其作为响应发送到前端。
示例代码:
```java
JSONObject response = new JSONObject();
response.put("image", base64EncodedImage);
return ResponseEntity.ok(response.toString());
```
在前端中,您可以使用 JavaScript 将 Base64 字符串转换回图像,并将其显示在 HTML 中。示例代码如下:
```javascript
const imageElement = document.createElement('img');
imageElement.src = 'data:image/png;base64,' + base64EncodedImage;
document.body.appendChild(imageElement);
```
相关推荐











要通过 AJAX 实现 Spring Boot 的文件下载,您可以使用 JavaScript 的 XMLHttpRequest 对象发送 GET 请求,并在响应中处理文件下载。以下是一个示例代码:
javascript
function downloadFile() {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/download/filename', true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
// 创建一个链接元素,用于下载文件
var url = window.URL.createObjectURL(xhr.response);
var link = document.createElement('a');
link.href = url;
link.download = 'filename';
link.click();
window.URL.revokeObjectURL(url);
}
};
xhr.send();
}
在上面的代码中,您需要将/download/filename替换为实际的文件下载 URL。当响应成功返回时,会使用 window.URL.createObjectURL() 创建一个临时链接,然后创建一个元素,将链接设置为该元素的href属性,并指定要下载的文件名称。最后,调用link.click()触发下载。请注意,在下载完成后,需要调用window.URL.revokeObjectURL()释放临时链接。
在前端页面中调用downloadFile()函数,即可触发文件的下载。
