SpringBoot 上传图片并保存到数据库 - 完整教程

本文将详细介绍如何使用 SpringBoot 上传图片并将其保存到数据库中。

1. 添加依赖

首先,需要在 pom.xml 文件中添加以下依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>

2. 创建实体类

创建一个实体类,用于映射数据库中的表:

@Entity
@Table(name = 'image')
public class Image {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long id;
   private String name;
   @Lob
   private byte[] data;
   // getter和setter
}

3. 创建控制器

创建一个控制器,用于接收上传的图片并将其保存到数据库中:

@RestController
@RequestMapping('/image')
public class ImageController {
   @Autowired
   private ImageRepository imageRepository;
   @PostMapping('/upload')
   public ResponseEntity<?> uploadImage(@RequestParam('file') MultipartFile file) {
      try {
         Image image = new Image();
         image.setName(file.getOriginalFilename());
         image.setData(file.getBytes());
         imageRepository.save(image);
         return ResponseEntity.ok().build();
      } catch (IOException e) {
         e.printStackTrace();
         return ResponseEntity.badRequest().build();
      }
   }
}

4. 创建仓库类

创建一个仓库类,继承 JpaRepository,用于操作数据库:

public interface ImageRepository extends JpaRepository<Image, Long> {
}

5. 配置数据库连接信息

最后,在 application.properties 文件中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/springboot_image?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

总结

这样,当上传图片时,就会将图片保存到数据库中。可以通过访问 http://localhost:8080/image/upload 上传图片。

SpringBoot 上传图片并保存到数据库 - 完整教程

原文地址: http://www.cveoy.top/t/topic/oUA7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录