首页> 文章> 详情

Spring Boot 项目优雅返回图片访问

教程分享 > Java教程 (2498) 2024-04-17 12:31:29

SpringBoot使用@ResponseBody返回图片的实现

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

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

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

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 ImageController {
 
  @GetMapping(value = "/image",produces = MediaType.IMAGE_JPEG_VALUE)
  @ResponseBody
  public byte[] test() throws Exception {
 
    File file = new File("E:\\tmp\\1.jpg");
    try(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会报错

特别提醒:
必须加produces属性,否则springboot无法自动的选择对应的解析器处理。

https://www.leftso.com/article/820.html

相关文章
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程中spring boot项目如何获取spring容器applicationContext
Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...
Java编程之Spring Boot中使用jsp视图模板
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
spring boot框架中常见注解说明,spring boot,JAVA
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
Java编程之spring boot shiro redis整合基于角色和权限的安全管理,Java编程,spring boot,shiro,权限控制
Spring Boot编译如何更改默认JDK版本?,spring boot,java
spring boot 入门之整合spring session实现session共享。一直以来Java编程中web项目中的session共享问题都是一个很难解决的问题。接下来将讲解通过sprin...
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Spring Boot 入门 AOP 日志处理,这里主要讲解spring boot 中采用AOP方式进行日志的统一处理。spring 框架的处理也是一样。综合来讲,本文主要讲解了spring b...