后台通过输出流显示图片或者二维码(以及乱码问题处理)
方式一
/**
* 读取图片
*/
@RequestMapping("/readPartImage")
@ResponseBody
public void readPartImage(HttpServletRequest request, HttpServletResponse response)throws Exception{
File file = new File("E:/qrCode.jpg");
InputStream is = new FileInputStream(file);
byte[] bytes = new byte[is.available()];
is.read(bytes);
is.close();
//ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream();
/*int ch = 0;
while (-1 != (ch = is.read())){
os.write(bytes,0,ch);
}*/
//这里contentType设置为图片类型,否则可能出现乱码,比如微信小程序接口获取的体验二维码是以文件形式返回,读取对应的输入流后直接输出流会出现乱码
response.setContentType("image/*");
os.write(bytes);
os.close();
}
方式二
/**
* 读取图片
*/
@RequestMapping("/readPartImage")
@ResponseBody
public void readPartImage(HttpServletRequest request, HttpServletResponse response)throws Exception{
File file = new File("E:/qrCode.jpg");
InputStream is = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = response.getOutputStream();
int ch = 0;
while (-1 != (ch = is.read())){
baos.write(ch);
}
os.write(baos.toByteArray());
is.close();
baos.close();
os.close();
}