javascript实现blob流、base64,file、base64的互相转换

file和base64

// file文件转换为base64
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onload = function(){
     
    console.log(reader.result); //获取到base64格式图片
};

base64转换为file

// base64转换为file
function dataURLtoFile(base64Data, fileName) {
     //将base64转换为文件
  var data = base64Data.split(','), 
  	  mime = data[0].match(/:(.*?);/)[1],
      byteString = atob(data[1]), 
      byteLength  = byteString .length, 
      uInt8Array = new Uint8Array(byteLength);
      
  while(n--){
     
      uInt8Array [n] = byteString .charCodeAt(n);
  }
  
  return new File([uInt8Array], fileName, {
     type:mime});
} 

// 调用
var file = blobToFile(base64Data, fileName);

将base64转换为blob

//将base64转换为blob
dataURLtoBlob: function(base64Data) {
     
     var data = base64Data.split(','),
         mime = data[0].match(/:(.*?);/)[1],
         byteString = window.atob(data[1]),
         byteLength = byteString.length,
         uInt8Array = new Uint8Array(byteLength);
         
     while (n--) {
     
         uInt8Array[n] = byteString.charCodeAt(n);
     }
     
     return new Blob([uInt8Array], {
      type: mime });
 }

//调用方法
var blob = dataURLtoBlob(base64Data);

blob流转换为base64

function blobToDataURI(blob, callback) {
     
   var reader = new FileReader();
   reader.readAsDataURL(blob);
   reader.onload = function (e) {
     
       callback(e.target.result);
   }
}

// 调用
blobToDataURI(blob, function(result){
      //blob格式再转换为base64格式
	console.log(result); 
})

将blob转换为file

// 将blob转换为file
blobToFile: function(blob, fileName){
     
    blob.lastModifiedDate = new Date();
    blob.name = fileName;
    return blob;
 }
 
//调用
var file = blobToFile(blob, fileName);

你可能感兴趣的:(Javascript,base64,file,base6)