在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ spring mvc ResponseEntity<byte[]>方

spring mvc ResponseEntity<byte[]>方式下載文件內(nèi)容亂碼

后端代碼:

clipboard.png

這里我是取了本地一個(gè)文件轉(zhuǎn)成二進(jìn)制數(shù)組,再加上reponse的header信息,直接返回ResponseEntiry對(duì)象;

前端測試調(diào)用:

clipboard.png
或者直接瀏覽器訪問就行;

現(xiàn)在的問題是內(nèi)容是亂碼導(dǎo)致圖片無法加載出來,

clipboard.png

如果我換成a.txt下載出來內(nèi)容也是亂碼,如下:
原本內(nèi)容:aaaa
下載內(nèi)容:"YWFhYQ=="

spring的requestMappingHandler如下配置:

clipboard.png

請(qǐng)求和響應(yīng)的包體如下:

clipboard.png

求教下,如何解決呢,是不是要更改下handlermapping的配置呢,我嘗試過如果用ByteArrayHttpMessageConverter向?yàn)g覽器刷數(shù)據(jù)貌似還是亂碼

回答
編輯回答
舊言

已解決,首先在byteArrayHttpMessageConverter的支持類型里面加上application/octet-stream支持流格式的下載,其次,在方法上面加上@RequestMapping(value="/downLoadTemplate",produces="application/octet-stream;charset=UTF-8")
主要目的是讓spring知道該方法的輸出內(nèi)容格式,以便讓spring知道用哪種messageConvert對(duì)象輸出內(nèi)容,涉及到的abstractMessageConverterMethodProcessor的writeWithMessageConverters源碼如下:

clipboard.png

2017年8月29日 17:44