Echarts图表生成图片

js ajax部分:

 vfunction doExport(imgURL){
   var url = '<%=path%>/doExportServlet?serial=' +(new Date().getTime());
  
   //创建 XMLHttpRequest 对象
   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");
   }
   //AJAX - 向服务器发送请求请求
   xmlhttp.open("POST",url,true); 
   //如果需要像 HTML表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send()方法中规定您希望发送的数据:
   xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   //strbase64date为图片debase64源码
   var endcode = encodeURIComponent(imgURL);//进行编码
   //endcode为编码后的base64
   xmlhttp.send("strBase64="+endcode);
   xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
     if (xmlhttp.status == 200) {
      alert("11111!");
     }
    }
   }
  }

java 部分:

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String str = request.getParameter("strBase64");//str为接收的base64
  String[] url = str.split(",");
        String imgbase64 = url[1];
        String path = "E:\\Echarts\\";
  String strname = "1.png";
  String fileName = path + strname; // path1为存放的路径,strname为文件名
  byte[] bytes = new BASE64Decoder().decodeBuffer(imgbase64); // 将base64解码后将字符串放到byte数组
  ByteArrayInputStream in = new ByteArrayInputStream(bytes);
  byte[] buffer = new byte[1024];
  File logosavedir = new File(path);// path1为存放的路径
  if (!logosavedir.exists()) {      // 如果不存在文件夹,则自动生成
   logosavedir.mkdirs();
  }
  FileOutputStream out = new FileOutputStream(fileName);
  int bytesum = 0;
  int byteread = 0;
  while ((byteread = in.read(buffer)) != -1) {
  bytesum += byteread;
  out.write(buffer, 0, byteread);   // 文件写操作
  out.flush();
  }
  out.close();
 }

你可能感兴趣的:(java,Ajax,ECharts)