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对象兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章