网站开发公司erp宁波网站推广优化公司电话
base64转二进制流
img标签src属性,可以直接使用base64字符串,base64需要先解码,然后再转为流
/*** Base64字符串转二进制流* @param {String} dataurl Base64字符串(字符串包含Data URI scheme,例如:data:image/png;base64, )*/
function dataURLtoBlob(dataurl) {var 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,});
}
base64转file
img标签src属性,可以直接使用base64字符串,base64需要先解码,然后再转为文件
/*** Base64字符串转File文件* @param {String} dataurl Base64字符串(字符串包含Data URI scheme,例如:data:image/png;base64, )* @param {String} filename 文件名称*/
function dataURLtoFile(dataurl, filename) {let arr = dataurl.split(',');let mime = arr[0].match(/:(.*?);/)[1];let bstr = atob(arr[1]);let n = bstr.length;let u8arr = new Uint8Array(n);while (n--) {u8arr[n] = bstr.charCodeAt(n);}return new File([u8arr], filename, {type: mime});
}
文件转base64
let fileReader = new FileReader()file.onchange = function (e) {console.log(e.target.files); //可以查到对应上传的文件,file是继承blob的对象fileReader.readAsDataURL(e.target.files[0])//转base64fileReader.onload = function (res) { console.log(res.target.result); }//显示base64的字符串}
流转base64
/*** 二进制流转Base64(字符串包含Data URI scheme)* @param {Object} data 二进制流* @param {String} type 文件类型(例如:image/png)*/
function getDataURL(data, type) {return new Promise((resolve, reject) => {const blob = new Blob([data], {type});const reader = new FileReader();reader.readAsDataURL(blob);reader.onload = () => resolve(reader.result);reader.onerror = (error) => reject(error);});
}