ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
ImageIO.write(png, "png", baos);//写入流中
byte[] bytes = baos.toByteArray();//转换成字节
BASE64Encoder encoder = new BASE64Encoder();
String png_base64 = encoder.encodeBuffer(bytes);//转换成base64串
png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
return png_base64;
ajax接收后台图片
后台
/**
* #获取验证码的图片
* #使用点击事件获取验证码图片
*/
@SuppressWarnings("unused")
private void checkcodeImgClick(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//点击图片按键请求
DrowPictureUtils pic = DrowPictureUtils.getDrawPicUtils();
pic.set(65, 37);
String checkCode = pic.generateCheckCode();//获取随机验证码
BufferedImage image = pic.generateCheckImage(checkCode);
req.getSession().setAttribute("checkcode", checkCode);//session需要记录该验证码
//点击其他按键请求
ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
ImageIO.write(image, "png", baos);//写入流中
byte[] bytes = baos.toByteArray();//转换成字节
BASE64Encoder encoder = new BASE64Encoder();
String png_base64 = encoder.encodeBuffer(bytes);//转换成base64串
png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n
resp.getWriter().write(png_base64);
}
前台
/**
* 申请更新验证码
* 该请求不需要有任何参数
*/
$("#checkcodeImg").click(function() {
$.ajax({
type: "post",
url: "./checkcodeImgClick.reg",
dataType: "text",
success: function(img, status){
alert(img);
$("#checkImg").attr("src","data:image/png;base64,"+img);
},
error:function(data){
alert('响应失败!');
},
});
});