mysql - 如何在 Spring Boot 中读取 Blob
问题描述
我是 Spring Boot 的初学者,我在我的 MySQL 数据库中保存了多个文件,如下所示,它工作正常,现在我想检索保存的文件
我不明白如何读取 blob 数据以及如何转换为显示用户的 URL。
控制器
@RequestMapping(value = "/getUser", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
@ResponseBody
public DBFile getUserById(@RequestBody DBFile dBFile ) {
DBFile record = employeeRepository.findById(dBFile.getId());
return record;
}
存储库
public interface MultipartRepository1 extends JpaRepository<DBFile, Integer{}
DTO
@Entity
@Table(name = "files")
public class DBFile {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
private String file_name;
private String file_type;
@Lob
private byte[] data;
public DBFile() {
}
public DBFile(String file_name, String file_type, byte[] data) {
this.file_name = file_name;
this.file_type = file_type;
this.data = data;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFile_name() {
return file_name;
}
public void setFile_name(String file_name) {
this.file_name = file_name;
}
public String getFile_type() {
return file_type;
}
public void setFile_type(String file_type) {
this.file_type = file_type;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
}
桌子
673e148e-a209-45c8-914c-7016dd59542f BLOB home_beach.jpg image/jpeg
a55777bc-5fda-41a7-a589-3731ae418262 BLOB beach-houses.jpg image/jpeg
ce3f502c-f780-4a7d-a7d1-e678adfa367d BLOB theahotel_logo.png image/png
解决方案
Spring boot 将自动将您的 blob 字段作为 base64 字符串返回,例如
{"data": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABfAAAAXwBsrqMZwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADdSURBVEiJtZTLCoUgEIZNaG90EfIFhXxTW6WbfJn/LA5xzOpUMg7MZmb4PvAyFWMMrGDwp4NSSqa1zpLgLqWU8N4DAIwxt/NJ/h9QSiGEAACw1kIIQSeI4fM8o2mat/BrQQxflgVd1+XAzwUpvO/7XPhRQAzfC2K4c44C/hOk8GEYKOBfQQz33lPCwdq2hXMOpYLXdc04f7wxsmK3CohezvGShRCw1gIA1nXFOI60goKSfaGA5Fgklpw3CCXXzVSilKIVpJIQQo7kfij+J9M00Qs2idb69RFVm6VUfACZhb1lipibXgAAAABJRU5ErkJggg=="}
您可以从端点仅返回该字段。然后将其转换为客户端应用程序上的图像。
推荐阅读
- excel - 突出显示空白行
- java - Java 8 flatMapped 流在 try-with-resources 块中关闭
- search - 如何仅在表格的可见页面中过滤数据,该页面在制表符的标题中具有过滤器
- c# - 按钮缩放边界(条件)
- php - Laravel 验证需要参数而不使用数组
- c# - 使用通用解析器从 Blob 直接读取
- c# - 如何使用不记名令牌和 API 模块在 EmbedIO 中设置主体
- python - 根据 Python 中项目的深度值创建列表结构
- operators - 如何创建将在 openshift 中使用之前检查 yaml 的操作员?
- nginx - 基于 Nginx 服务器名的代理路由