springboot 接口返回图片

一,前言

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

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

二,使用方法

  1,返回示例

获取后端接口返回的数据

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

 2,详细教程

接口

@Controller
@RequestMapping("/app")
public class FirmController {
    @Autowired
    private FirmMapper firmMapper;
    //获取全部的厂商
    @GetMapping("/list")
    @ResponseBody
    public Object ListFirm() {
        //查询数据
        List<Firm> firms = firmMapper.selectList(null);

        /**    测试实例
         for (Firm firm : firms) {
         System.out.println(firm);
         }*/
        //判断接口内容是否为空
        if (firms.size() != 0) {
            //遍历图片
            for (Firm firm : firms) {
                //获取图片的名称, 再用ServletUtils生成url地址  
                firm.setImage(ServletUtils.getImageUrl(firm.getImage()));
            }     
            return JSONObject.toJSON(new ReturnObject(200, "查询成功", firms.size(), firms));
        } else {
            return JSONObject.toJSON(new ReturnObject(500, "查询失败"));
        }
    }

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

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

public class ServletUtils {
//生成当前请求的url 最后在接口中拼接url 生成一个新的访问地址
    public static String getImageUrl(String imageName){
        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = servletRequestAttributes.getRequest();
        StringBuffer requestURL = request.getRequestURL();
        String servletPath = request.getServletPath();
        int index = requestURL.indexOf(servletPath);
        return requestURL.delete(index+1 , requestURL.length())+"images/"+imageName;
    }

}

实体类

package com.gong.app_school.model.dao;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Firm {
    @TableId(value = "id", type = IdType.AUTO)
    private int id;
    private String name;

    private String news;

    private String classify;

    private String event;
//图片
    private String image;

    /**
     * 1推荐活动 0 不推荐  int类型
     */
    private Integer recommand;


}

数据库

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

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

resources/static/images

 三,总结

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

pom.xml

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.9</version>
        </dependency>

    </dependencies>

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Spring Boot后端返回图片给前端的过程中,可以通过以下几种方式实现: 1. 将图片存储在静态资源目录下,例如resources/static/images文件夹中。然后在接口返回图片的URL地址。可以使用ServletUtils来获取生成图片的URL地址,并将其以JSON格式返回给前端。\[1\] 2. 可以通过调用小程序的API,使用wx.chooseImage选择图片并上传到后端接口进行保存。在后端接口中,可以使用MultipartFile来接收上传的图片文件,并将其保存到指定的位置。然后将图片的URL地址返回给前端。\[2\] 3. 另一种方式是将图片上传到文件服务器中,然后将图片的URL地址保存到数据库中。在前端页面中,可以通过HTTP访问该URL地址来显示图片。这样可以实现图片的上传和返回图片URL并展示的功能。\[3\] 以上是几种常见的方式,具体选择哪种方式取决于你的需求和实际情况。 #### 引用[.reference_title] - *1* [springboot 接口返回图片](https://blog.csdn.net/shuaiqijiejie/article/details/127155499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SpringBoot与微信小程序进行图片的上传和后端返回图片url在前端展示](https://blog.csdn.net/qq_43712169/article/details/123661241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值