base64格式的图片转文件 并以formdata传给后台
相关概念
Blob
Blob,Binary Large Object缩写,二进制大对象,表示一个不可变、原始数据的类文件对象。
单位为字节(byte),一个字节8位长,为0~255
Uint8Array
8位无符号整型数组
atob() 方法
atob() 方法用于解码使用 base-64 编码的字符串
base-64 编码使用方法是 btoa() 。
代码
let binary = atob(base64.split(',')[1]);
let array = [];
for (let i = 0; i < binary.length; i++) {
//将binary字符串转为Unicode码点
array.push(binary.charCodeAt(i));
}
//Blob构造函数的第一个参数为ArrayBuffer、ArrayBufferView、Blob、DOMString等对象构成的Array,或者其它类似对象的混合体
var blob = new Blob([new Uint8Array(array)], {
type: "image/jpeg"
});
var formpost = new FormData();
formpost.append("image", blob, Date.now() + ".jpg")