js中实现 base64 与文件格式互转

文件转 base64

通过 reader.readAsDataURL 方法实现

function file2base64(fileObj){
    let fileAddress = fileObj; //获取文件, fileObj 为文件对象
    let file = new FileReader();
    file.readAsDataURL(fileAddress); // 获取文件url,过程中触发下方 onload 方法
    file.onload = function(){
    	console.log(file.result); //file.result就是转换后的 base64 格式
    }
}

base64 转文件

先将 base64 转换成 blob ,再将 blob 转换成 file 文件

function base64toFile(base64Str,fileName) {
	//1,先将base64转换为blob
    var arr = base64Str.split(','),
        mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]),
        n = bstr.length,
        u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    let theBlob = new Blob([u8arr], { type: mime });
    
    //2,再将blob转换为file
	theBlob.lastModifiedDate = new Date();  // 文件最后的修改日期
	theBlob.name = fileName;                // 文件名
	return new File([theBlob], fileName, {type: theBlob.type, lastModified: Date.now()});
},

觉得有帮助的朋友可以支持下作者哦,您的鼓励是我创作的最大动力,如有开发问题可联系作者
请添加图片描述

你可能感兴趣的:(前端,javascript,开发语言,前端,javascript)