js - blob流和base64,以及file和base64的相互转换

2021-09-07 11:12

阅读:869

标签:onchange   array   spl   on()   tar   测试案例   target   call   load   file和base64 1.file文件转换为base64,得到base64格式图片 var reader = new FileReader(); reader.readAsDataURL(this.files[0]); reader.onload = function(){ console.log(reader.result); //获取到base64格式图片 }; 2.base64转换为file function dataURLtoFile(dataurl, filename) {//将base64转换为文件 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 File([u8arr], filename, {type:mime}); } 测试案例: var base64Img = ''; document.getElementById('imgfile').onchange = function(){ var fileReader = new FileReader(); fileReader.readAsDataURL(this.files[0]); fileReader.onload = function(){ base64Img = fileReader.result; console.log(dataURLtoFile(base64Img,'img11')) } } function dataURLtoFile(dataurl, filename) {//将base64转换为文件 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 File([u8arr], filename, {type:mime}); } blob和base64 3.base64转换为blob流 function dataURItoBlob(base64Data) { //console.log(base64Data);//data:image/png;base64, var byteString; if(base64Data.split(',')[0].indexOf('base64') >= 0) byteString = atob(base64Data.split(',')[1]);//base64 解码 else{ byteString = unescape(base64Data.split(',')[1]); } var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型 -- image/png // var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组 // var ia = new Uint8Array(arrayBuffer);//创建视图 var ia = new Uint8Array(byteString.length);//创建视图 for(var i = 0; i = 0) byteString = atob(base64Data.split(',')[1]);//base64 解码 else{ byteString = unescape(base64Data.split(',')[1]); } var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型 -- image/png // var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组 // var ia = new Uint8Array(arrayBuffer);//创建视图 var ia = new Uint8Array(byteString.length);//创建视图 for(var i = 0; i


评论


亲,登录后才可以留言!