js---将base64的数据转换为文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js---将base64的数据转换为文件相关的知识,希望对你有一定的参考价值。
参考技术A /*** 将base64的数据转换成一个Blob对象
* @param Object b64Data base64数据
* @param Object contentType 数据类型
* @param Object sliceSize 分片大小
*/
function b64toBlob(b64Data, contentType, sliceSize)
let b = b64Data.toString();
b64Data = b.split(',')[1];
var byteCharacters =atob(b64Data);
var byteArrays = [];
for (let offset =0; offset < byteCharacters.length; offset += sliceSize)
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers =new Array(slice.length);
for (let i =0; i < slice.length; i++)
byteNumbers[i] = slice.charCodeAt(i);
var byteArray =new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
var blob =new Blob(byteArrays, type: contentType);
return blob;
/**
* 将Blob对象转换为file对象
* @param Object theBlob blob对象
* @param Object fileName 文件名称
*/
function blobToFile(theBlob,fileName)
theBlob.lastModifiedDate =new Date();
theBlob.name = fileName;
return theBlob;
// 创建一个reader
let reader =new FileReader();
// 将图片转成 base64 格式
reader.readAsDataURL(file);
/**
* 将base64转换为文件
* @param dataurl base64格式数据
* @param filename 文件名
* @param filetype 文件类型
* @returns File 二进制流文件
*/
function dataURLtoFile(dataurl,filename,filetype)
var arr = dataurl.split(","),
bstr =atob(arr[1]),
n = bstr.length,
u8arr =new Uint8Array(n);
while (n--)
u8arr[n] = bstr.charCodeAt(n);
return new File([u8arr], filename,
type: filetype
);
以上是关于js---将base64的数据转换为文件的主要内容,如果未能解决你的问题,请参考以下文章
Javascript如何将Base 64 url转换为文件?