springboot传图片到前端之有手就行
生活随笔
收集整理的這篇文章主要介紹了
springboot传图片到前端之有手就行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
springboot傳圖片到前端之有手就行
其實想要實現springboot傳圖片到前端是一件非常容易實現的,但是網上太多弄得花里胡哨,讓人摸不清頭腦;
實現springboot傳圖片到前端第一步(找圖片)
沒錯,想要實現這個功能,第一步就是找圖片
經過一段緊張的思考,我覺得還是弄點比較 色情 好康 的圖片
并且通過董事會開會決定,咱就通過抓網上的圖片下來實現springboot傳圖片到前端的第一步
就決定是你了
在這里我就不多說怎么通過java獲取網上的圖片了,反正最后的步驟都是一樣的,需要將圖片轉換為byte[]數組
實現springboot傳圖片到前端第二步(把圖片轉為byte[]數組)
用于byte[]數組來實現是最簡單的,所以用byte[]來傳準沒錯
圖片轉byte數組第一步
1、獲取圖片輸入流
InputStream inputStream = HttpUtil.toGet("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3708260731,3754490116&fm=26&gp=0.jpg");我這里是通過http請求獲取的圖片輸入流,如果你們不需要這樣的話,就算通過本地傳圖片到前端,第一步也是獲取圖片輸入流的
2、輸入流轉byte[]
我這里寫了個方法,如果需要直接復制粘貼進去就行,調用這個方法,就可以得到輸入流的轉的byte[]
public byte[] getBytesByStream(InputStream inputStream){byte[] bytes = new byte[1024];int b;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();try {while((b = inputStream.read(bytes)) != -1){byteArrayOutputStream.write(bytes,0,b);}return byteArrayOutputStream.toByteArray();} catch (IOException e) {e.printStackTrace();}return null;}實現springboot傳圖片到前端第三步(定義返回圖片接口方法)
1、在這一步,也就是controller里面的方法,直接定義返回值為ResponseEntity<byte[]>,一定要是這個返回值啊,其他的話,這個方法是不行的
2、定義httpHeaders
在這里如果是操作本地圖片的,需要注意一點,就是你的圖片是什么類型的,下面這個MediaType.IMAGE_PNG就是什么類型的
final HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.IMAGE_PNG);3、return
這一步就是將前面我們獲取到的byte[]和定義的hettpHeaders一起放到ResponseEntity<byte[]>里面,作為返回值
//第一個參數,就是圖片輸入流轉的byte[],第二個參數就是前面定義的hettpHeaders,第三個就是在什么情況下返回,我這里就是在請求ok的情況下 return new ResponseEntity<>(bytesByStream,headers, HttpStatus.OK);實現springboot傳圖片到前端第四步(看圖)
直接訪問你的這個端口
源碼
@GetMapping("/qrg1")public ResponseEntity<byte[]> getImg() {//通過自己寫的http工具類獲取到圖片輸入流InputStream inputStream = HttpUtil.toGet("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3708260731,3754490116&fm=26&gp=0.jpg");//將輸入流轉為byte[]byte[] bytesByStream = getBytesByStream(inputStream);final HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.IMAGE_PNG);return new ResponseEntity<>(bytesByStream,headers, HttpStatus.OK);}public byte[] getBytesByStream(InputStream inputStream){byte[] bytes = new byte[1024];int b;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();try {while((b = inputStream.read(bytes)) != -1){byteArrayOutputStream.write(bytes,0,b);}return byteArrayOutputStream.toByteArray();} catch (IOException e) {e.printStackTrace();}return null;}總結
以上是生活随笔為你收集整理的springboot传图片到前端之有手就行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工神经网络的数学内涵,神经网络的数学表
- 下一篇: 关于苹果AR/VR专利新闻的一次超详细探