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

编程教程 > Java > Spring (3361) 2024-11-26 14:39:04

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无法自动的选择对应的解析器处理。


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程中spring boot项目如何获取spring容器applicationContext
spring boot框架中常见注解说明,spring boot,JAVA
Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...
Spring boot 全局异常捕捉,spring boot,java
Spring Boot编译如何更改默认JDK版本?,spring boot,java
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Java编程之spring boot shiro redis整合基于角色和权限的安全管理,Java编程,spring boot,shiro,权限控制
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
Java编程中spring boot项目动态添加拦截器Interceptor
spring boot 入门之security oauth2 jwt完美整合例子,Java编程中spring boot框架+spring security框架+spring security o...
Java编程中使用spring boot1.5.2框架整合spring data mongodb10.1,来使用mongodb数据库