在后端将图片上传到数据库需要以下步骤:
- 在表中添加存储图片的字段,一般使用BLOB类型。
- 在Controller中处理图片上传请求,并将图片数据存储到数据库中。
@PostMapping("/upload")
public String handleImageUpload(@RequestParam("image") MultipartFile image) {
// 校验上传的文件是否为图片
if (!image.isEmpty() && image.getContentType().startsWith("image/")) {
try {
// 将字节流转换为二进制数组
byte[] bytes = image.getBytes();
// 创建实体对象
ImageEntity imageEntity = new ImageEntity();
imageEntity.setName(image.getOriginalFilename());
imageEntity.setData(bytes);
// 保存实体对象到数据库
imageRepository.save(imageEntity);
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/success";
}
return "redirect:/error";
}
在上述示例中,我们首先使用@RequestParam("image")
注解来绑定上传的图片文件到MultipartFile类型的参数中。然后,我们可以使用MultipartFile提供的getContentType()方法来检查上传的文件是否为图片。如果上传的文件不是图片,则返回错误页面;否则,将图片文件转换为二进制数组并保存到实体对象中,最后将实体对象保存到数据库中。
值得注意的是,在从数据库中读取图片数据时,我们需要将二进制数组转换为字节流再返回给前端。