时间:2022-12-13 09:30:32 | 栏目:JAVA代码 | 点击:次
以前使用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会报错。
浏览器访问接口测试一下,返回如下: