前台传base64格式的图片,后台来接受处理.

您所在的位置:网站首页 前台样子图片 前台传base64格式的图片,后台来接受处理.

前台传base64格式的图片,后台来接受处理.

2024-05-25 16:44| 来源: 网络整理| 查看: 265

1.首先你得知道前台传的是什么玩意.

   

//给file添加一个事件,当选择了文件后,执行下面uploadFile的方法 $("#image").bind("change", function() { uploadFile($(this)); }); //通过onChange直接获取base64数据 function uploadFile(file) { var reader = new FileReader(); var allowImgFileSize = 2100000; //上传图片最大值(单位字节)( 2 M = 2097152 B )超过2M上传失败 var file = $("#image")[0].files[0]; var imgUrlBase64; if (file) { //将文件以Data URL形式读入页面 imgUrlBase64 = reader.readAsDataURL(file); reader.onload = function (e) { //var ImgFileSize = reader.result.substring(reader.result.indexOf(",") + 1).length;//截取base64码部分(可选可不选,需要与后台沟通) if (allowImgFileSize != 0 && allowImgFileSize < reader.result.length) { alert( '上传失败,请上传不大于2M的图片!'); return; }else{ //将转码后的数据展示出来 $("#div").html(reader.result)//data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/ } } } }

前台最终转的结果是:data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/......是这样的.也就是说

data:+文件格式+";"+base64+","+核心数据.

取到了转码后的数据,那么传给后台,后台怎么解决呢?

2.后台怎么解析Base64

其实这跟后台不后台没有什么关系,关键是你得理解什么是base64,什么是文件.

base64只是字节的编码方式.文件是字节的数据集.

想要转成文件,那么就只需要解码成字节数组,然后通过字节流写成文件即可.如下图代码,

/** * 1.获取到后面到数据 */ String data = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...."; String base64Data = data.split(",")[1]; /** * 2.解码成字节数组 */ Decoder decoder = Base64.getDecoder(); byte[] bytes = decoder.decode(base64Data); /** * 3.字节流转文件 */ FileOutputStream fos = null; try { fos = new FileOutputStream("E:\\aaa.jpg"); fos.write(bytes); return name; } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } }

即可.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3