SpringBoot使用@ResponseBody返回圖片的實(shí)現(xiàn)
以前使用HttpServletResponse可以通過(guò)輸出流的方式來(lái)向前臺(tái)輸出圖片。現(xiàn)在大部分都是使用springboot,在使用springboot之后,我們應(yīng)該如何來(lái)修改代碼呢?
Spring Boot項(xiàng)目搭建配置略過(guò),可直接從官網(wǎng)簡(jiǎn)歷一個(gè)demo
首先寫(xiě)一個(gè)Controller類,包括一個(gè)方法,如下:
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是一個(gè)圖片(image/jpeg),然后加上@ResponseBody注解,方法返回byte[],然后將圖片讀進(jìn)byte[],不加produces會(huì)報(bào)錯(cuò)。
瀏覽器訪問(wèn)接口測(cè)試一下,返回如下:
到此這篇關(guān)于SpringBoot使用@ResponseBody返回圖片的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot @ResponseBody返回圖片內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程2. Vue實(shí)現(xiàn)仿iPhone懸浮球的示例代碼3. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式4. 一個(gè) 2 年 Android 開(kāi)發(fā)者的 18 條忠告5. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼6. Spring的異常重試框架Spring Retry簡(jiǎn)單配置操作7. Android studio 解決logcat無(wú)過(guò)濾工具欄的操作8. 什么是Python變量作用域9. PHP正則表達(dá)式函數(shù)preg_replace用法實(shí)例分析10. vue-drag-chart 拖動(dòng)/縮放圖表組件的實(shí)例代碼
