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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容