zoukankan      html  css  js  c++  java
  • ajax java base64 图片储存

    js代码
    //利用formdata上传
     1 var dataUrl = $('#canvas').getDataUrl();
     2 var img = $('<img>').attr('src', dataUrl);     //显示图片
     3 var oMyForm = new FormData();     //创建formdata
     4 var blobBin = dataURLtoBlob(dataUrl);     //base64转换blob
     5 oMyForm.append("blobObject", blobBin);    //想formData添加blob数据
     6 $.ajax({
     7         url: $.getUrl()+"activity/updateImg",
     8         type: "POST",
     9         data: oMyForm,
    10         async: false,
    11         cache: false,
    12         contentType: false,
    13         processData: false,
    14         success: function (msg) {
    15              console.log("yes");
    16         }
    17 });
    18 
    19 //**dataURL to blob**  dataURL转换blob
    20 function dataURLtoBlob(dataurl) {
    21    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    22    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    23    while (n--) {
    24         u8arr[n] = bstr.charCodeAt(n);
    25    }
    26    return new Blob([u8arr], { type: mime });
    27 }
    java代码
     
    //spring mvc
     1 @RequestMapping(value="updateImg",method=RequestMethod.POST)
     2 public void upLoad(HttpServletRequest request,HttpServletResponse response) throws IOException {
     3       System.out.println("enter...");
     4       // 从请求中获取到文件信息需要将请求转换为MultipartHttpServletRequest类型
     5       MultipartHttpServletRequest MulRequest = request instanceof MultipartHttpServletRequest ? (MultipartHttpServletRequest) request : null;
     6       Iterator<String> fileNames = MulRequest.getFileNames();
     7       byte[] imgByte = null;
     8       if (fileNames.hasNext()) { // 遍历请求中的图片信息
     9          String fileName = fileNames.next(); // 图片对应的参数名
    10          MultipartFile file = MulRequest.getFile(fileName); // 获取到图片
    11          if (file != null) {
    12              System.out.println("file.getSize():" + file.getSize()); // 图片大小
    13              imgByte=file.getBytes();// 可以获取到图片的字节数组
    14          }
    15         }
    16 
    17       for(int i=0;i<imgByte.length;++i)
    18       {
    19          if(imgByte[i]<0)
    20          {//调整异常数据
    21              imgByte[i]+=256;
    22          }
    23       }
    24       //生成jpeg图片
    25       String imgFilePath = "d://222.jpg";//新生成的图片
    26       OutputStream out = new FileOutputStream(imgFilePath);
    27       out.write(imgByte);
    28       out.flush();
    29       out.close();
    30     }
  • 相关阅读:
    zabbix客户端自动注册
    运维监控篇(2)_Zabbix简单的性能调优
    Zabbix unreachable poller processes more than 75% busy
    RabbitMQ 内存控制 硬盘控制
    RabbitMQ的Q&A
    RabbitMQ性能优化
    消息默认的属性
    RabbitMQ的Vhost,Exchange,Queue原理分析
    逻辑运算符(&& || and or)
    面向对象
  • 原文地址:https://www.cnblogs.com/guyg/p/5857596.html
Copyright © 2011-2022 走看看