Base64转化为图片并上传服务器

前言

在做身份证读卡器自动录入功能时,发现返回的图片信息是base64字符串。
但需要将图片存储到服务器上,所以就要将base64字符串转化为图片上传。

一、操作步骤

1.转化为Blob

将base64转化为二进制文件

代码如下:

1 // 将base64转换为blob
2 function dataURLtoFile(dataURI, type) {
3     let binary = atob(dataURI.split(',')[1]);
4     let array = [];
5     for (let i = 0; i < binary.length; i++) {
6         array.push(binary.charCodeAt(i));
7     }
8     return new Blob([new Uint8Array(array)], {type: type});
9 }

 

2.上传文件服务器

得到图片文件,剩下就和普通的图片上传流程一样

代码如下:

 1 function upload(baseStr, index) {
 2     // 图片地址
 3     let imgBase = 'data:image/jpeg;base64,' + baseStr;
 4     let blob = dataURLtoFile(imgBase, 'image/jpeg');
 5     var formData = new FormData();
 6     let fileOfBlob = new File([blob], new Date() + '.jpg'); // 重命名了
 7     formData.append("faceInfo", fileOfBlob);
 8     $.ajax({
 9         url: baseImgUrl + "xx/xx/uploadImage", //用于文件上传的服务器端请求地址
10         dataType: 'json',
11         type: 'POST',
12         async: false,
13         data: formData,
14         processData: false, // 使数据不做处理
15         contentType: false, // 不要设置Content-Type请求头
16         success: function (r) { //服务器成功响应处理函数
17             if (r.state) {
18                 // 上传成功后的处理
19                 var data = r.result;
20                 // 图片地址
21                 var url = baseImgUrl + data[0]
22                 // ...
23             } else {
24                 message("错误", "上传失败");
25             }
26         }
27     });
28 }
posted on 2021-08-24 10:45  猫的树kireCat  阅读(985)  评论(0编辑  收藏  举报