SpringBoot 图片以base64类型存入postgresql数据库相关代码编写
时间: 2023-08-02 17:44:53 浏览: 174
图片转base64编码
以下是一个简单的 Spring Boot 控制器代码示例,它可以将一个图片文件转换为 base64 编码并将其存储在 PostgreSQL 数据库中:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class ImageController {
@Autowired
private ImageRepository imageRepository;
@GetMapping("/")
public String index() {
return "index";
}
@PostMapping("/upload")
public String uploadImage(@RequestParam("file") MultipartFile file) throws IOException {
// Read the image file and convert it to base64
Path path = Paths.get(file.getOriginalFilename());
String base64Image = Base64.getEncoder().encodeToString(Files.readAllBytes(path));
// Save the base64 image to the database
Image image = new Image();
image.setName(file.getOriginalFilename());
image.setType(file.getContentType());
image.setData(base64Image);
imageRepository.save(image);
return "redirect:/";
}
}
```
在上面的代码中,我们将上传的文件转换为一个 `Path` 对象,然后读取这个文件并将其转换为一个 base64 编码的字符串。最后,我们创建一个 `Image` 对象,将文件信息和 base64 编码的字符串赋给它,并将其保存到 PostgreSQL 数据库中。
需要注意的是,`Image` 实体类需要包含 `name`、`type` 和 `data` 这三个属性,分别用于存储图片的名称、类型和 base64 编码的字符串。同时,你需要使用 Spring Data JPA 或其他 ORM 框架来实现 `ImageRepository` 接口,以便能够将 `Image` 对象保存到数据库中。
阅读全文