spring 中@ResponseBody 原樣返回對象。 例如 return 「hello」那就返回一個String 類型的hello ,因而我想返回圖片是否是把返回值改爲BufferedImage就能夠了。。spring
事實證實我又天真了一回,這樣作確定是不行的。網絡
不信的孩子能夠試試。而後我又想到圖片在網絡中是以二進制流傳輸的。那麼返回爲byte [] 就應該能夠了吧。
app
之前用過restlet ,restlet中 若是要返回對象也是轉化成二進制流的,servlet中也是直接out.write(byte...)關機是怎麼讓頁面識別這個是二進制流是圖片。。url
沒錯就是設置headers,代碼以下。spa
其實也能夠使用produces ,看我的愛好了。。.net
@Controller rest
@EnableAutoConfiguration對象
public class ImageCtr {圖片
@RequestMapping(value = "/imgcc", headers = "Accept=image/jpeg", method = RequestMethod.GET)get
public @ResponseBody byte[] getimage() {
URL url;
BufferedImage bmg = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
url = new URL(
"http://attachments.gfan.com/forum/attachments2/day_120518/1205182052852ce273e69b7eca.jpg");
bmg = ImageIO.read(url);
ImageIO.write(bmg, "jpg", bos);
bos.flush();
} catch (Exception e) {
e.printStackTrace();
}
return bos.toByteArray();
}