Echarts 圖片保存到服務器 詳解

  1. Echarts 介紹 點我

  2. 通過事件跳轉到JS函數

  3. 通過全局echartsDOM實例得到圖片
    是被加密過的

      img = myChart.getDataURL({
      pixelRatio: 2, // double pixel
      backgroundColor: '#fff' 
    });
    
  4. Base64位圖片傳到服務器

    1. base64位圖片直接傳到服務器,會被http協議轉換掉,具體是空格+
    String base64Str = request.getParameter("img");
    base64Str = base64Str.replaceAll(" ", "+");
    
    1. js 加密
    imgStr = encodeURIComponent(img);
    

    這個加密后,不用Java是不用decode的,原因是request.getParameter()是會自動解密。

  5. 去除Base64協議類型頭

    base64Str = base64Str.split("base64,")[1];
    
  6. 保存圖片

    /**
     * base64字符串轉化成圖片
     * * @Author Mangodai
     * @Date 9/18/2017 6:10 PM
     * @param imgStr
     * @param imgFile
     * @return
     */
    public static boolean GenerateImage(String imgStr, File imgFile) {
        //對字節數組字符串進行Base64解碼并生成圖片
        if (imgStr == null) //圖像數據為空
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            //Base64解碼
            byte[] b = decoder.decodeBuffer(imgStr);
            OutputStream out = new FileOutputStream(imgFile);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進行加密后保存到用戶偏好設置( [NSUserDefaul...
    彬至睢陽閱讀 3,001評論 0 7
  • 概述 之前一直對加密相關的算法知之甚少,只知道類似DES、RSA等加密算法能對數據傳輸進行加密,且各種加密算法各有...
    Henryzhu閱讀 3,050評論 0 14
  • 在Gooogle I/O 2013年的大會上面,展示的Volley庫,已經成為android開發中最常用的處理和緩...
    優才學院閱讀 8,174評論 2 9
  • 我的博客原文地址 后端返回的數據中總會出現一些NSNull類型,當我們一處理程序就會崩潰,因此想到把返回的數據中的...
    zlcode閱讀 2,968評論 0 4