首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringBoot使用@ResponseBody返回图片[通俗易懂]

SpringBoot使用@ResponseBody返回图片[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-24 13:42:41
发布2022-08-24 13:42:41
2.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片。现在大部分都是使用springboot,在使用springboot之后,我们应该如何来修改代码呢?

Spring Boot项目搭建配置略过,可直接从官网简历一个demo

首先写一个Controller类,包括一个方法,如下:

代码语言:javascript
复制
package com.example.demo.common;

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;
import java.io.FileInputStream;

@RestController
@RequestMapping(value="/api/v1")
public class ImageTest {

    @GetMapping(value = "/image",produces = MediaType.IMAGE_JPEG_VALUE)
    @ResponseBody
    public byte[] test() throws Exception {

        File file = new File("E:\\ce\\1.jpg");
        FileInputStream inputStream = new FileInputStream(file);
        byte[] bytes = new byte[inputStream.available()];
        inputStream.read(bytes, 0, inputStream.available());
        return bytes;

    }

}

我们首先在@GetMapping上加入produces告诉Spring,我们要返回的MediaType是一个图片(image/jpeg),然后加上@ResponseBody注解,方法返回byte[],然后将图片读进byte[],不加produces会报错

浏览器访问接口测试一下,返回如下:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140144.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档