当前位置:   article > 正文

springboot 接口返回图片_springboot返回图片

springboot返回图片

一,前言

使用springboot在接口内直接返回图片,生成url地址,浏览器直接访问

需要数据库与实体类 ,下面详细介绍使用方法

二,使用方法

  1,返回示例

获取后端接口返回的数据

 复制返回的链接在浏览器打开

 2,详细教程

接口

  1. @Controller
  2. @RequestMapping("/app")
  3. public class FirmController {
  4. @Autowired
  5. private FirmMapper firmMapper;
  6. //获取全部的厂商
  7. @GetMapping("/list")
  8. @ResponseBody
  9. public Object ListFirm() {
  10. //查询数据
  11. List<Firm> firms = firmMapper.selectList(null);
  12. /** 测试实例
  13. for (Firm firm : firms) {
  14. System.out.println(firm);
  15. }*/
  16. //判断接口内容是否为空
  17. if (firms.size() != 0) {
  18. //遍历图片
  19. for (Firm firm : firms) {
  20. //获取图片的名称, 再用ServletUtils生成url地址
  21. firm.setImage(ServletUtils.getImageUrl(firm.getImage()));
  22. }
  23. return JSONObject.toJSON(new ReturnObject(200, "查询成功", firms.size(), firms));
  24. } else {
  25. return JSONObject.toJSON(new ReturnObject(500, "查询失败"));
  26. }
  27. }

SerfletUtils工具类:  主要功能是生成图片的url地址信息 (自动拼接url)

  1. import org.springframework.web.context.request.RequestContextHolder;
  2. import org.springframework.web.context.request.ServletRequestAttributes;
  3. import javax.servlet.http.HttpServletRequest;
  4. public class ServletUtils {
  5. //生成当前请求的url 最后在接口中拼接url 生成一个新的访问地址
  6. public static String getImageUrl(String imageName){
  7. ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  8. HttpServletRequest request = servletRequestAttributes.getRequest();
  9. StringBuffer requestURL = request.getRequestURL();
  10. String servletPath = request.getServletPath();
  11. int index = requestURL.indexOf(servletPath);
  12. return requestURL.delete(index+1 , requestURL.length())+"images/"+imageName;
  13. }
  14. }

实体类

  1. package com.gong.app_school.model.dao;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableId;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. @Data
  8. @AllArgsConstructor
  9. @NoArgsConstructor
  10. public class Firm {
  11. @TableId(value = "id", type = IdType.AUTO)
  12. private int id;
  13. private String name;
  14. private String news;
  15. private String classify;
  16. private String event;
  17. //图片
  18. private String image;
  19. /**
  20. * 1推荐活动 0 不推荐 int类型
  21. */
  22. private Integer recommand;
  23. }

数据库

数据库内直接存放图片名称即可

 存放图片的路径一定要在  resources  下 static 下 images中  

resources/static/images

 三,总结

springboot使用接口返回图片: 图片的名称存在数据库中(image在数据库的类型为varchar,数据库只起到存放图片名称的作用 ),图片存放在resources/staic/images内,编写实体类,然后在接口内主要遍历数组内数据,遍历完后通过servletUitls获取生成图片的url地址,主义返回类型为json格式。

pom.xml

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-test</artifactId>
  9. <scope>test</scope>
  10. </dependency>
  11. <dependency>
  12. <groupId>mysql</groupId>
  13. <artifactId>mysql-connector-java</artifactId>
  14. <scope>runtime</scope>
  15. </dependency>
  16. <!--mybatis-plus -->
  17. <dependency>
  18. <groupId>com.baomidou</groupId>
  19. <artifactId>mybatis-plus-boot-starter</artifactId>
  20. <version>3.0.5</version>
  21. </dependency>
  22. <!--lombok-->
  23. <dependency>
  24. <groupId>org.projectlombok</groupId>
  25. <artifactId>lombok</artifactId>
  26. <version>1.18.10</version>
  27. <scope>provided</scope>
  28. </dependency>
  29. <dependency>
  30. <groupId>com.alibaba</groupId>
  31. <artifactId>fastjson</artifactId>
  32. <version>1.2.9</version>
  33. </dependency>
  34. </dependencies>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/208486
推荐阅读
相关标签
  

闽ICP备14008679号