场景
我们前后端交互图片的时候,一般我们是用base64进行交互的,但是很多时候我们传递图片的时候很多的后端是需要file文件格式的,而不是base64的,所以这个时候是需要进行一个简单的转变
源码记录
代码语言:javascript复制 /**
* @dataURLtoBlob 转文件格式
*/
dataURLtoBlob : function(dataurl) {
let arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while(n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
},
/**
* @param {Object} theBlob 文件
* @param {Object} fileName 文件名字
*/
blobToFile : function(theBlob, fileName) {
theBlob.lastModifiedDate = new Date();
theBlob.name = fileName;
return theBlob;
},
调用
代码语言:javascript复制 let blob = that.dataURLtoBlob(data);
let file = that.blobToFile(blob, "imgName");
let send_file = new FormData();
send_file.append("upfile", file,"image.png");
send_file就是我们需要的给后端的文件,这篇文章只是用来记录一下,所以不写别的废话了,这里简单的说一下,我们拿到一个base64文件的时候,想验证一下是不是正确的格式的话,那么我们是可以直接放到url里面,他可以识别出图片本身,那么就是一个正确的base64,如果不行,那么就不是一个正确的base64格式的文件,还有就是直接在网上找在线转换的工具,这个是很多的。