base64转file对象兼容性问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64转file对象兼容性问题相关的知识,希望对你有一定的参考价值。

参考技术A 1、直接将base64转file对象(有兼容问题)(ie edge 360兼容模式)

//将base64转换成file对象

function dataURLtoFile(dataurl, filename)

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



dataurl:base64

filename:文件名

2、将base转换成blob对象,再将blob对象转换成file对象。

//将base64转换为blob

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;

    return theBlob;



 blobToFile(dataURLtoBlob(dataurl), fileName);

dataurl:base64

filename:文件名

input file转base64

不想用canvas转

  <input type="file" id="file" accept="image/*" onchange="changeImg()"/>
  <script>


function blobToDataURL(blob,cb) 
    let reader = new FileReader();
    reader.onload = function (evt) 
      var base64 = evt.target.result
      cb(base64)
    ;
    reader.readAsDataURL(blob);


  var file = document.getElementById("file");
  function changeImg() 
    var img = file.files[0]
    if(img)
      var url = URL.createObjectURL(img);
      var base64 = blobToDataURL(img,function(base64Url) 
        console.log(base64Url)
      )
    
  

 

以上是关于base64转file对象兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

JS 图片转Base64

JS 图片转Base64

部署java项目出现base 64解析问题

转DataURL在Web浏览器中的兼容性总结

php文件转base64

Python 将base64字符串还原成图片保存&&图片转base64