echarts3d显示服务器信息,echarts生成图片另存到服务器上

整体思路:

1、前端:把echart的base64传递到后端

2、后端:在后台进行base64解码,生成指定路径下的图片

前端,伪代码:

....

myCharts1.setOption(option1);

setTimeout(exportImage, 2000);//切记:一定设置这个延迟,否则生成的图片是黑色的。

function exportImage(){

var picBase64Info = myCharts1.getDataURL();//获取图片的base64传递后台,生成图片,供导出报表使用

var data = "a="+encodeURIComponent(myCharts1.getDataURL("png"));

var xmlhttp;

if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

} else { // code for IE6, IE5

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.open("POST","/web/model/login/savetp.do",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

//alert("保存成功");

}

}

xmlhttp.send(data);

}

后端,伪代码:

/**

* 保存图片

* @param request

* @return

*/

@RequestMapping(value = "/savetp", method = RequestMethod.POST)

public void saveImage(HttpServletRequest request) throws Exception{

String a = request.getParameter("a");

String[] url = a.split(",");

String u = url[1];

byte[] b = new BASE64Decoder().decodeBuffer(u);

for (int i = 0; i < b.length; ++i) {

if (b[i] < 0) {// 调整异常数据

b[i] += 256;

}

}

// 生成png图片

String imgpath=request.getRealPath("/")+"/export/fw.png";

OutputStream out = new FileOutputStream(imgpath);

out.write(b);

out.flush();

out.close();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值