SpringBoot使用@ResponseBody返回圖片的實現
以前使用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:ce1.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返回圖片的實現的文章就介紹到這了,更多相關SpringBoot @ResponseBody返回圖片內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
