#mysql #spring-boot
#mysql #spring-boot
Вопрос:
Я новичок в 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
Ответ №1:
Spring boot автоматически вернет ваше blob-поле в виде строки base64, например
{"data": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABfAAAAXwBsrqMZwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADdSURBVEiJtZTLCoUgEIZNaG90EfIFhXxTW6WbfJn/LA5xzOpUMg7MZmb4PvAyFWMMrGDwp4NSSqa1zpLgLqWU8N4DAIwxt/NJ/h9QSiGEAACw1kIIQSeI4fM8o2mat/BrQQxflgVd1 XAzwUpvO/7XPhRQAzfC2K4c44C/hOk8GEYKOBfQQz33lPCwdq2hXMOpYLXdc04f7wxsmK3CohezvGShRCw1gIA1nXFOI60goKSfaGA5Fgklpw3CCXXzVSilKIVpJIQQo7kfij J9M00Qs2idb69RFVm6VUfACZhb1lipibXgAAAABJRU5ErkJggg=="}
Вы можете вернуть только это поле из конечной точки. Затем преобразуйте это в изображение в клиентском приложении.
Комментарии:
1. Почему я должен конвертировать его в base 64
2. Я хочу преобразовать его в URL