base64图片格式 跟input type= ‘file’ 选择的表单文件格式相互转换

前端在做开发的过程中少不了要上传文件或者图片到服务器端,有时候上传图片是用base64格式上传,有时候接口则是要求用表单的文件流形式上传。下面两个方法就是对图片形式进行转换。

1.  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  newFile([u8arr],filename,{type:mime});

}

varfile=dataURLtoFile(imgUrl,"img");


2.   file 图片转base64    base64转blob,blob转file

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});

};

//将blob转换为file

function  blobToFile:(theBlob,fileName){

theBlob.lastModifiedDate= new Date(); 

theBlob.name=fileName;

returnthe  Blob;

};

//调用

var  blob=dataURLtoBlob(base64Data);

var  file=blobToFile(blob,imgName);

你可能感兴趣的:(base64图片格式 跟input type= ‘file’ 选择的表单文件格式相互转换)