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

SpringBoot使用@ResponseBody返回图片[通俗易懂]以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片。现在大部分都是使用springboot,在使用springboot之后,我们应该如何来修改代码呢?SpringBoot项目搭建配置略过,可直接从官网简历一个demo首先写一个Controller类,包括一个方法,如下:packagecom.example.demo.common;…

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

微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路       

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

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

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

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会报错

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

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年5月8日 上午8:00
下一篇 2022年5月8日 上午8:20


相关推荐

  • 【C/C++】 常量指针,指针常量、指向常量的常指针详解

    【C/C++】 常量指针,指针常量、指向常量的常指针详解什么是指针指针就是指向变量的地址在这里插入代码片指针常量 int constp amp a 特点 指针的指向不可以修改 指针指向的内存的值可以修改举例 p 20 p amp b 常量指针 inta 10 intb 10 constint p amp a 特点 指针的指向可以修改 但是指针指向的值不可以修改

    2026年3月26日
    2
  • 常见的基本汇编书籍有哪些_简单点的汇编书籍

    常见的基本汇编书籍有哪些_简单点的汇编书籍Windows.环境下32位汇编语言程序设计(第2版) http://www.happycampus.cn/docs/957100583237@hc10/275980/ 汇编语言编程艺术 Intel汇编语言程序设计(第四版) Intel汇编语言程序设计(第五版)范例 http://download.csdn.net/source/1523425 

    2022年10月13日
    5
  • for each 的用法

    for each 的用法foreach 的语句格式 for 元素类型 t nbsp nbsp 元素变量 x nbsp nbsp 遍历对象 obj nbsp nbsp nbsp nbsp 引用了 x 的 java 语句 nbsp Java 中新增的 foreach 的用法 JDK1 5 加入的增强 for 和循环 foreach 语句使用总结增强 for part1 part2 part3 nbsp part2 中是一个数组对象 或者是带有泛性的集合 nbsp part1 定义了一个局部变量 这个局部变量的类型与 p

    2026年3月19日
    2
  • 软RAID1 更换坏硬盘

    软RAID1 更换坏硬盘1 买块容量一样大小的硬盘 2 把新买的硬盘安装到机器了 3 分区硬盘并把 t 的类型设为 fd 我新添加的硬盘盘符为 dev sdb fdisk dev sdb4 运行 partprobe 让内核重新装载分区表 5 停止 RAID1 的挂载 umount dev md06 移除损坏的设备 mdadm dev md0 r de

    2025年8月4日
    4
  • C语言之一个有趣的关机程序「建议收藏」

    C语言之一个有趣的关机程序「建议收藏」★一个有趣的关机程序#include<stdio.h>intmain(){charinput[]={0};system("shutdown-s-t60")//这是Windows系统下的一个关机命令flag:printf("你的电脑将在一分钟后关机,如果输入"我是猪",就会取消关机!\n请输入:");scanf("%s",input);if(0==strcm…

    2022年7月22日
    12
  • Invalidate(TRUE)与Invalidate(FALSE)区别

    Invalidate(TRUE)与Invalidate(FALSE)区别篇一 Invalidate false 不擦除背景 直接画 Invalidate true 擦除背景 InvalidateRe 只是增加重绘区域 在下次 WM PAINT 的时候才生效 InvalidateRe 函数中的参数 TRUE 表示系统会在你画之前用背景色将所选区域覆盖一次 默认背景色为白色 可以通过设置 BRUSH 来改变背景色 Invalidate 之后 MFC 的 顺便了 OnPa

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号