SpringBoot把图片存入服务器并保存到数据库

本文详细介绍了如何使用SpringBoot将图片存入服务器,并将相关信息存储到数据库中,包括创建数据库表、配置数据库连接、定义Pojo类、添加依赖、编写工具类、配置类、Controller、Map.xml、Service层和Service实现类,最后通过Postman进行测试。
摘要由CSDN通过智能技术生成

步骤一:创建一个数据库表

CREATE TABLE `company` (
  `id` INT(11) PRIMARY KEY AUTO_INCREMENT,
  `company_name` VARCHAR(255) DEFAULT NULL COMMENT '企业名称',
  `business_license_url` VARCHAR(255) DEFAULT NULL COMMENT '营业执照上传url'
) ENGINE=INNODB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COMMENT='公司';

步骤二:在Idea的Database连接你需要使用的数据库

步骤三:在Database下生成Company的Pojo

步骤四:pom.xml导入的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</versi
可以通过以下步骤实现Spring Boot中上传图片并将链接地址存入数据库并在前端调用: 1. 在Spring Boot应用程序中添加文件上传依赖。 2. 创建一个Controller类,其中包含一个处理图片上传请求的方法。 3. 在处理方法中,使用MultipartFile对象来处理上传的图片。使用File类将上传的图片保存服务器上。 4. 创建一个实体类来存储上传图片的信息,例如图片名、图片类型、图片大小和图片链接地址等信息。 5. 创建一个Repository类,用于将上传图片的信息存储到数据库中。 6. 在处理方法中,将上传图片的信息保存数据库中。 7. 在前端页面中,创建一个表单,用于上传图片。在表单中添加一个图片选择器,以便用户可以选择要上传的图片。将表单的提交地址设置为处理图片上传请求的Controller方法。 8. 在处理方法中,将上传图片的链接地址返回给前端页面,以便用户可以查看上传图片的链接地址。 9. 在前端页面中,使用img标签来显示上传的图片。将img标签的src属性设置为上传图片的链接地址。 需要注意的是,为了保证上传图片的安全性,需要对图片的类型和大小进行验证,并对上传图片的存储路径进行限制。可以使用Spring Boot的文件上传工具类来简化这些操作。 以下是一个简单的实现代码示例: 1. 添加文件上传依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> ``` 2. 创建Controller类: ```java @RestController @RequestMapping("/api") public class ImageUploadController { @Autowired private ImageRepository imageRepository; @PostMapping("/uploadImage") public String uploadImage(@RequestParam("file") MultipartFile file) { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); try { Image image = new Image(fileName, file.getContentType(), file.getBytes()); imageRepository.save(image); return "/api/downloadImage/" + image.getId(); } catch (IOException ex) { return "Error uploading image"; } } @GetMapping("/downloadImage/{id}") public ResponseEntity<byte[]> downloadImage(@PathVariable Long id) { Image image = imageRepository.findById(id).get(); return ResponseEntity.ok() .contentType(MediaType.parseMediaType(image.getType())) .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + image.getName() + "\"") .body(image.getData()); } } ``` 3. 创建实体类: ```java @Entity @Table(name = "images") public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String name; @Column(nullable = false) private String type; @Lob @Column(nullable = false) private byte[] data; public Image() {} public Image(String name, String type, byte[] data) { this.name = name; this.type = type; this.data = data; } // getters and setters } ``` 4. 创建Repository类: ```java @Repository public interface ImageRepository extends JpaRepository<Image, Long> {} ``` 5. 在前端页面中,创建一个表单: ```html <form method="POST" action="/api/uploadImage" enctype="multipart/form-data"> <input type="file" name="file" accept="image/*"> <button type="submit">Upload</button> </form> ``` 6. 在前端页面中,使用img标签显示上传的图片: ```html <img src="/api/downloadImage/{id}"> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值